Plover Wiki
plover_wiki
https://plover.wiki/index.php/Plover_Wiki
MediaWiki 1.41.0
first-letter
Media
Special
Talk
User
User talk
Plover Wiki
Plover Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Translations
Translations talk
Template:Tl
10
1549
2326
2021-02-12T22:03:00Z
wikipedia>Anthony Appleyard
0
Anthony Appleyard moved page [[Template:Tl]] to [[Template:Template link]]: [[Special:Permalink/1006428669|Requested]] by Buidhe at [[WP:RM/TR]]: RM closed as move
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
{{Redirect category shell|
{{R from move}}
}}
d6593bb3b4a866249f55d0f34b047a71fe1f1529
MediaWiki:Mainpage
8
2
6
2024-02-04T16:52:55Z
Rice
1
Created page with "Plover"
wikitext
text/x-wiki
Plover
5536da1ca40af40fb33533574842993ab4cdf40b
Plover Wiki
0
3
8
2024-02-04T16:54:43Z
Rice
1
Created page with "Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute. Plover runs on Windows, macOS, and Linux. - [[Beginner's Guide: Get Started with Plover]] === The Open Steno Project === Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project..."
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
=== The Open Steno Project ===
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
da3e80ff0a0c0280619da57471716fe929c20288
9
8
2024-02-04T17:11:31Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
79f42877f241b6de1db3b0d56271264e8587e2c0
10
9
2024-02-04T17:24:17Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
[[#the-open-steno-project The Open Steno Project]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
b9bdbddcc92e987b9ac4c1d9ba6a96aeb740c6c9
11
10
2024-02-04T17:26:41Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
[[Plover#The Open Steno Project|The Open Steno Project]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
077c1562eb30a7f84d14c8380ad73020551164ac
12
11
2024-02-04T17:54:08Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
79f42877f241b6de1db3b0d56271264e8587e2c0
13
12
2024-02-04T18:22:52Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
[Open Steno Project](http://openstenoproject.org)
c3f9a4e71928a706a27444711aeeddfaa3e961ea
14
13
2024-02-04T18:28:22Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide: Get Started with Plover]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<markdown>
[Open Steno Project](http://openstenoproject.org)
</markdown>
0efeb664fb55eedcc5267b9ea4b1a7828f614dc7
15
14
2024-02-04T18:30:16Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
- [[Beginner's Guide|Beginner's Guide: Get Started with Plover]]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
ff3d4692bfc31db0b39ebb6626715f928fff1f44
40
15
2024-02-05T03:15:22Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
0756a666a55626fd17f578777a4220be83148b3e
42
40
2024-02-05T15:25:00Z
Rice
1
wikitext
text/x-wiki
[[File:Https://raw.githubusercontent.com/openstenoproject/plover/main/doc/ static/dolores.svg|frameless|center|alt=An illustration of a plover (bird) with one wing's underside displaying a steno key layout in its feathers|Dolores, the mascot of Plover]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
f11d87c6f1ddc23d744e394feb45efab9d34331b
43
42
2024-02-05T15:28:56Z
Rice
1
wikitext
text/x-wiki
<p align="center">
<img width="300" alt="Plover logo" src="https://raw.githubusercontent.com/openstenoproject/plover/main/doc/_static/dolores.svg" />
</p>
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
81382560123d8ca5bba08bd2ada27fa5780fe52c
44
43
2024-02-05T15:30:30Z
Rice
1
wikitext
text/x-wiki
<markdown>

</markdown>
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
7866f8a1bf74f855f9e66f6095771b48f2cd377d
45
44
2024-02-05T15:31:45Z
Rice
1
wikitext
text/x-wiki
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
0756a666a55626fd17f578777a4220be83148b3e
47
45
2024-02-05T15:42:32Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|left|thumb]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
a17a9ecdf309c1d0ee97d5232776f13a2fbf431a
48
47
2024-02-05T15:43:43Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|thumb|center]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
4fa3843612cbd4f76d74bcacfde11d5eaab24b65
49
48
2024-02-05T15:45:22Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
b938bd614176418fae24037389f3730198040340
50
49
2024-02-05T15:45:41Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot|213x213px]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
0dddffde5d159fc96ed40590360d449f806a3171
51
50
2024-02-05T15:45:49Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|left|frameless|Dolores, the Plover mascot|193x193px]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
0863064c6b17946d9a5d337a3fdd6ef6673b1fdf
Beginner's Guide
0
4
16
2024-02-04T18:32:01Z
Rice
1
Created page with "<markdown> This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge. ## Overview The main steps are: 1. [Download and install the Plover application.](#download-and-install-plover) 1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine) 1. [Confirm it's working.](#confirm-its-working) 1. [Practice and learn st..."
wikitext
text/x-wiki
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#download-and-install-plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine)
1. [Confirm it's working.](#confirm-its-working)
1. [Practice and learn stenography using Plover.](#practice-and-learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide)
* If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
97b1a876fdfc56502ca41a5964c8023c6394f91d
17
16
2024-02-04T18:33:42Z
Rice
1
wikitext
text/x-wiki
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine)
1. [Confirm it's working.](#confirm-its-working)
1. [Practice and learn stenography using Plover.](#practice-and-learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide)
* If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
c1131524fafd074de9a38f7fd42778d452baa789
18
17
2024-02-04T18:34:23Z
Rice
1
wikitext
text/x-wiki
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#connect-a-compatible-keyboard-or-stenography-machine)
1. [Confirm it's working.](#confirm-its-working)
1. [Practice and learn stenography using Plover.](#practice-and-learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [**Download and install Plover with the Installation Guide 🚀**](https://github.com/openstenoproject/plover/wiki/Installation-Guide)
* If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
56ceb223eb9efaa97162a6efe6cf5974e9aa0e19
19
18
2024-02-04T18:37:03Z
Rice
1
wikitext
text/x-wiki
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine)
1. [Confirm it's working.](#markdown_Confirm_it's_working)
1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* **[Download and install Plover with the Installation Guide 🚀](https://github.com/openstenoproject/plover/wiki/Installation-Guide)**
* If you get stuck, see the [troubleshooting guide](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
217f08785b17650aadaa52330e8e0c6ae677941b
20
19
2024-02-04T18:48:35Z
Rice
1
wikitext
text/x-wiki
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine)
1. [Confirm it's working.](#markdown_Confirm_it's_working)
1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide)
* If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
c5df2487d211db76929f90b7c3d4cd66cb563665
41
20
2024-02-05T03:41:45Z
Rice
1
wikitext
text/x-wiki
__TOC__
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine)
1. [Confirm it's working.](#markdown_Confirm_it's_working)
1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide)
* If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
6e9a4713febdf23293a684762e265f516ff9f48b
MediaWiki:Sidebar
8
5
21
2024-02-04T19:26:06Z
Rice
1
Created page with " * navigation ** mainpage|mainpage-description ** https://www.openstenoproject.org/plover|Plover Website * Other Links ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES"
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** https://www.openstenoproject.org/plover|Plover Website
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
8df1aab0467d628698c0470ba55605d27a0781ba
22
21
2024-02-04T19:28:59Z
Rice
1
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
*** https://www.openstenoproject.org/plover|Plover Website
*** Beginner's_Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
4e8ec6b3d80c2819857e53d95c3184a437c4cf37
23
22
2024-02-04T19:29:30Z
Rice
1
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
*** https://www.openstenoproject.org/plover|Plover Website
*** Beginner's_Guide|Beginner's Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
bec6300995bb0fc0ad9e0d1451eb28520c6bf70f
24
23
2024-02-04T19:31:55Z
Rice
1
wikitext
text/x-wiki
* navigation
** Plover|mainpage-description
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation_Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
2ac6b68188c5bfea58508e0c2a619efef472722c
25
24
2024-02-04T19:33:06Z
Rice
1
wikitext
text/x-wiki
* navigation
** Plover
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
6cc8b57c88a86d0b71478a6a22325b53816cfb86
26
25
2024-02-04T19:33:18Z
Rice
1
wikitext
text/x-wiki
* navigation
** Plover|Plover
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
52d0f70f201e473ee4ebe129a7bbe6d26bd69b57
27
26
2024-02-04T19:34:23Z
Rice
1
wikitext
text/x-wiki
* navigation
** mainpage|mainpage_description
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
31c3a50c631f29bae9818e2031778cfe1be87d0b
28
27
2024-02-04T19:35:00Z
Rice
1
wikitext
text/x-wiki
* navigation
** mainpage|mainpagedescription
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
5b1b450aa1372b8ca91ff2348dd853d240741e69
29
28
2024-02-04T19:35:23Z
Rice
1
wikitext
text/x-wiki
* navigation
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
* Other Links
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
b1faa9c4b8028f941bdd952f632bec674741d44f
30
29
2024-02-04T19:47:11Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in_Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* The_Steno_Community|The Steno Community
* https://www.openstenoproject.org/demo/|In-Browser Demo
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
6ed9840efcf3160eebcf6719e9c0e6d8d6dfe1bc
31
30
2024-02-04T19:48:11Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in_Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Other Pages
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
fa0876f68125ee682909aafa7fbb66b9f486526e
32
31
2024-02-04T19:48:34Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in_Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Other Pages
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
8ab9eee3261d71c5d52ce2c491f3edb61834e0dd
33
32
2024-02-04T19:49:42Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in_Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Other Pages
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
fa359347300c709ea3298412c38cf444f321d481
34
33
2024-02-04T19:50:04Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Other Pages
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
7cd4f9f7e4e21ed3f7d2425736fb2f9ce5a42b4d
MediaWiki:Common.css
8
6
35
2024-02-04T20:16:55Z
Rice
1
Created page with "/* CSS placed here will be applied to all skins */ #mw-wiki-logo{ padding:1rem; }"
css
text/css
/* CSS placed here will be applied to all skins */
#mw-wiki-logo{
padding:1rem;
}
b5554dd768f8d2c6a3118885ed766368a3f70f25
36
35
2024-02-04T20:17:24Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
#p-logo{
padding:1rem;
}
1e89ab32f18481799c597bf67ed90ebc4d07008f
37
36
2024-02-04T20:19:25Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
#p-logo{
padding:1rem;
}
#p-logo a{
width: 100%;
}
484aa1be97a3e3fb08d5bb15520425128699d247
38
37
2024-02-04T20:20:29Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
#p-logo{
padding:1rem;
box-sizing:border-box;
}
#p-logo a{
width: 100%;
}
a3869c10b2d62a7fb5b894277f7405c3945c1150
39
38
2024-02-04T20:22:42Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
f23a4358c198efde0025fa6fb8082854aa392a65
File:Plover-mascot-Dolores.svg
6
7
46
2024-02-05T15:42:00Z
Rice
1
wikitext
text/x-wiki
An illustration of a plover (the bird) with a steno keyboard layout on the underside of its wing
e78c9bc927a16283d035fe1ae3d990ae25862cb1
Installation Guide
0
8
52
2024-02-05T15:47:39Z
Rice
1
Created page with "<markdown> **Table of Contents** - [Install Plover on Windows](#install-plover-on-windows) - [Install Plover on Mac](#install-plover-on-mac) - [Install Plover on Linux](#install-plover-on-linux) - [Troubleshooting](#troubleshooting) - [Setting up my machine](#setting-up-my-machine) - [Other installation methods](#other-installation-methods) - [For developers: running from source](#for-developers-running-from-source) # Install Plover on Windows Plover can be installed..."
wikitext
text/x-wiki
<markdown>
**Table of Contents**
- [Install Plover on Windows](#install-plover-on-windows)
- [Install Plover on Mac](#install-plover-on-mac)
- [Install Plover on Linux](#install-plover-on-linux)
- [Troubleshooting](#troubleshooting)
- [Setting up my machine](#setting-up-my-machine)
- [Other installation methods](#other-installation-methods)
- [For developers: running from source](#for-developers-running-from-source)
# Install Plover on Windows
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe)
Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10)
### [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip)
Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover.
--------------------
# Install Plover on Mac
## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg)
1. Open the `.dmg` file.
1. In the mounted disk, drag the `Plover.app` to your `Applications` folder.
1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac)
1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`.
1. Click the `+` Button, and go to your applications and select `Plover.app`.
Plover is set up! You can run Plover like you would any other application.
> **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
### If you had previously uninstalled Plover or upgraded your system
Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5.
--------------------
# Install Plover on Linux
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch.
## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage)
To use it:
1. Download it
1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80)
1. Launch it like a standard executable
## Allow Access to Serial Ports
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
```
stat -c "%G" /dev/ttyACM*
```
You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
```
sudo usermod -aG <group> $USER
```
Replace `<group>` with the output of the previous command.
**Once you have added yourself to the right group, restart your computer.**
## Error relating to xcb
You may run into the following error when trying to run Plover:
> Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
Ensure that the following packages are installed:
- `libxcb`
- `xcb-util`
- `qt5-qtstyleplugins`
- `libxcb-cursor0`
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
```
./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'
```
# Setting up my machine
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine.
# Other installation methods
## Other releases
You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system.

## Homebrew Cask
If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line.
## Arch AUR package
Two AUR packages are provided:
1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release
2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master`
Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/).
## Gentoo git ebuild
Currently, only a git ebuild for the `master` branch is provided.
[Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies)
## Void Linux package
Plover is packaged in the Void Linux repositories under the package name `plover`.
Note: the plugins manager has not been packaged yet.
# Troubleshooting
If you get stuck, you can:
- Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues)
- Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions)
- If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new)
We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic.
# For developers: running from source
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
- [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows)
- [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux)
- [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx)
</markdown>
116642f91d2a360a9931d1cb1be298a3f5a0036d
MediaWiki:Spam-whitelist
8
9
53
2024-02-05T15:57:39Z
Rice
1
Created page with " #<!-- leave this line exactly as it is --> <pre> # External URLs matching this list will *not* be blocked even if they would # have been blocked by block list entries. # # Syntax is as follows: # * Everything from a "#" character to the end of the line is a comment # * Every non-blank line is a regex fragment which will only match hosts inside URLs #</pre> <!-- leave this line exactly as it is --> youtu.be amzn.to aliexpress.com"
wikitext
text/x-wiki
#<!-- leave this line exactly as it is --> <pre>
# External URLs matching this list will *not* be blocked even if they would
# have been blocked by block list entries.
#
# Syntax is as follows:
# * Everything from a "#" character to the end of the line is a comment
# * Every non-blank line is a regex fragment which will only match hosts inside URLs
#</pre> <!-- leave this line exactly as it is -->
youtu.be
amzn.to
aliexpress.com
34bd7d947b853171223c22d1dabc4f2193f88cd5
Supported hardware
0
10
54
2024-02-05T15:58:03Z
Rice
1
Created page with "<markdown> This page lists the machine known to work with Plover. **Table of Contents** - [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover) - [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines) - [DIY Machines](#diy-machines) - [Out-of-production Machines](#out-of-production-machines) - [Stenotype Machines](#stenotype-machines) - [Supported protocols](#supported-protocols) - [..."
wikitext
text/x-wiki
<markdown>
This page lists the machine known to work with Plover.
**Table of Contents**
- [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover)
- [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines)
- [DIY Machines](#diy-machines)
- [Out-of-production Machines](#out-of-production-machines)
- [Stenotype Machines](#stenotype-machines)
- [Supported protocols](#supported-protocols)
- [Known supported stenotypes](#known-supported-stenotypes)
- [Keyboards](#keyboards)
- [What's NKRO?](#whats-nkro)
- [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro)
- [Test #1: Double Shift](#test-1-double-shift)
- [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test)
- [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro)
- [Known supported keyboards](#known-supported-keyboards)
- [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose)
- [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
- [Keytoppers](#keytoppers)
- [Keycaps](#keycaps)
- [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout)
- [Laptops with NKRO](#laptops-with-nkro)
- [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Dedicated machines designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover.
## Commercially Available Hobbyist Machines
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
| Product Name | Manufacturer | About | Price |
| - | - | ---- | - |
| [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 |
| [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 |
| [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 |
| [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 |
| [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) |
| [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |
| [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 |
## DIY Machines
Projects to build your own machine.
| Product Name | About |
| ---------------------------------- | ----------------------- |
| [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
| [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
| [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |
| [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |
| [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)|
## Out-of-production Machines
Models that are no longer made or available for sale.
| Product Name | Manufacturer | About | Years |
| ---------------------------------- | ------------------ | ----------------------- | ----- |
| Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |
| [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |
| [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod |
| [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 |
| [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |
# Stenotype Machines
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/>
## Supported protocols
Plover supports several protocols that are in use by various machines:
* **Stentura serial**: most machines by Stenograph and many others.
* **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* **ProCAT**: protocol used by all ProCAT machines.
* **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol.
* **Treal**: used only by the Treal from Word Technologies.
* **Passport**: used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.
## Known supported stenotypes
The following machines have been confirmed by users to work with Plover
after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |
| Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |
| Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` |
| Gemini2 | Neutrino Group | Gemini PR (serial) | |
| Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) |
| Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |
| Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. |
| Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |
| Infinity Genesis | Neutrino Group | Gemini PR (serial) | |
| Passport | Advantage Software | Passport (USB) | |
| Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB |
| Revolution Grand | Neutrino Group | Gemini PR (serial) | |
| Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) |
| Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)|
| Tréal | Word technologies | Treal (USB) | |
| Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". |
| Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |
# Keyboards
If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
## What's NKRO?
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once.
For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover).
## How do I know if my keyboard has NKRO
In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
## What if my keyboard is not capable of NKRO?
If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information.
## Known supported keyboards
You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Comments | Price
| --------------------------- | ---------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100
| Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50
| I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/)
| DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30
| TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/)
| K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U)
| X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html)
| ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE)
| K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/)
| K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/)
| K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT)
| K68 | Corsair | NKRO over USB | $160-200
| K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM)
| KG901 | Marvo | NKRO over USB | $30-70 AUD
| STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/)
| CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/)
| Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html)
| C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html)
| Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690)
| Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1)
| Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1)
| Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB)
| G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard)
| Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ)
| Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/)
| Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800)
| Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/)
| Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard)
| Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/)
| Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com)
| Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck)
| Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io)
| Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917)
### Which type of key switch should I choose?
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch.
The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.**
| How many keys are in the average chord? | |
| --- | --- |
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |
The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
| Switch | Stat | Note | Machines |
| ------ | ---- | ---- | ------- |
| Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |
| Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |
| Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |
| Cherry MX Red | 45 cN linear | | |
| Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |
| Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |
|Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |
\* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
- Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
- Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point.
- Trimming the springs of a linear switch by several mm to reduce force.
- Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market.
- Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
## Adapt a keyboard for steno use

Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.
### Keytoppers
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins.

### Keycaps
If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
- [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.
<img src="https://imgur.com/FRwXu8x.jpg" width="400">
- The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`)
- You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case).
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
## NKRO keyboards with an ortholinear layout
Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). |
| [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> |
|[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |
| [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
| [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
<a id="notebooks-with-nkro"></a>
# Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible.
| Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight |
| -------- | ----------- | --------------- | ------- | ----- | ------ |
| [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs |
| [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs |
| [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** |
| [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs |
| [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs |
| [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |
| [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs |
| [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |
| [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs |
| [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs |
| Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |
| [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |
\* Untested for use with Plover
## Laptops that don't actually work with Plover
After testing some of the laptops on the list above, they were found to not live up to their claims.
| Model | Manufacturer | Claimed Rollover | Findings |
| -------- | --------------- | ------- | ----- |
| HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters |
| [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |
</markdown>
d11214dfa8eff45a1767fd0990fee372a304c4dd
55
54
2024-02-05T15:58:28Z
Rice
1
wikitext
text/x-wiki
<markdown>
This page lists the machine known to work with Plover.
**Table of Contents**
- [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover)
- [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines)
- [DIY Machines](#diy-machines)
- [Out-of-production Machines](#out-of-production-machines)
- [Stenotype Machines](#stenotype-machines)
- [Supported protocols](#supported-protocols)
- [Known supported stenotypes](#known-supported-stenotypes)
- [Keyboards](#keyboards)
- [What's NKRO?](#whats-nkro)
- [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro)
- [Test #1: Double Shift](#test-1-double-shift)
- [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test)
- [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro)
- [Known supported keyboards](#known-supported-keyboards)
- [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose)
- [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
- [Keytoppers](#keytoppers)
- [Keycaps](#keycaps)
- [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout)
- [Laptops with NKRO](#laptops-with-nkro)
- [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover)
# Dedicated machines designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover.
## Commercially Available Hobbyist Machines
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
| Product Name | Manufacturer | About | Price |
| - | - | ---- | - |
| [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 |
| [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 |
| [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 |
| [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 |
| [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) |
| [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |
| [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 |
## DIY Machines
Projects to build your own machine.
| Product Name | About |
| ---------------------------------- | ----------------------- |
| [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
| [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
| [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |
| [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |
| [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)|
## Out-of-production Machines
Models that are no longer made or available for sale.
| Product Name | Manufacturer | About | Years |
| ---------------------------------- | ------------------ | ----------------------- | ----- |
| Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |
| [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |
| [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod |
| [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 |
| [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |
# Stenotype Machines
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/>
## Supported protocols
Plover supports several protocols that are in use by various machines:
* **Stentura serial**: most machines by Stenograph and many others.
* **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* **ProCAT**: protocol used by all ProCAT machines.
* **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol.
* **Treal**: used only by the Treal from Word Technologies.
* **Passport**: used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.
## Known supported stenotypes
The following machines have been confirmed by users to work with Plover
after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |
| Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |
| Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` |
| Gemini2 | Neutrino Group | Gemini PR (serial) | |
| Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) |
| Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |
| Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. |
| Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |
| Infinity Genesis | Neutrino Group | Gemini PR (serial) | |
| Passport | Advantage Software | Passport (USB) | |
| Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB |
| Revolution Grand | Neutrino Group | Gemini PR (serial) | |
| Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) |
| Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)|
| Tréal | Word technologies | Treal (USB) | |
| Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". |
| Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |
# Keyboards
If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
## What's NKRO?
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once.
For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover).
## How do I know if my keyboard has NKRO
In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
## What if my keyboard is not capable of NKRO?
If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information.
## Known supported keyboards
You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Comments | Price
| --------------------------- | ---------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100
| Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50
| I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/)
| DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30
| TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/)
| K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U)
| X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html)
| ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE)
| K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/)
| K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/)
| K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT)
| K68 | Corsair | NKRO over USB | $160-200
| K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM)
| KG901 | Marvo | NKRO over USB | $30-70 AUD
| STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/)
| CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/)
| Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html)
| C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html)
| Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690)
| Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1)
| Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1)
| Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB)
| G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard)
| Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ)
| Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/)
| Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800)
| Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/)
| Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard)
| Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/)
| Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com)
| Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck)
| Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io)
| Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917)
### Which type of key switch should I choose?
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch.
The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.**
| How many keys are in the average chord? | |
| --- | --- |
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |
The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
| Switch | Stat | Note | Machines |
| ------ | ---- | ---- | ------- |
| Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |
| Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |
| Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |
| Cherry MX Red | 45 cN linear | | |
| Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |
| Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |
|Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |
\* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
- Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
- Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point.
- Trimming the springs of a linear switch by several mm to reduce force.
- Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market.
- Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
## Adapt a keyboard for steno use

Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.
### Keytoppers
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins.

### Keycaps
If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
- [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.
<img src="https://imgur.com/FRwXu8x.jpg" width="400">
- The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`)
- You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case).
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
## NKRO keyboards with an ortholinear layout
Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). |
| [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> |
|[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |
| [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
| [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
<a id="notebooks-with-nkro"></a>
# Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible.
| Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight |
| -------- | ----------- | --------------- | ------- | ----- | ------ |
| [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs |
| [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs |
| [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** |
| [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs |
| [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs |
| [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |
| [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs |
| [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |
| [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs |
| [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs |
| Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |
| [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |
\* Untested for use with Plover
## Laptops that don't actually work with Plover
After testing some of the laptops on the list above, they were found to not live up to their claims.
| Model | Manufacturer | Claimed Rollover | Findings |
| -------- | --------------- | ------- | ----- |
| HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters |
| [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |
</markdown>
718a586a113c767966fdd2a9a4077e6eabf70452
Dictionary format
0
11
56
2024-02-05T15:59:32Z
Rice
1
Created page with "<markdown> This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands. **Table of Contents** - [About Strokes and Dictionaries](#about-strokes-and-dictionaries) - [Plover's Default Dictionaries](#plovers-default-dictionaries) - [Dictionary priority](#dictionary-priority) - [JSON and RTF/CRE](#json-and-rtfcre) - [Limitations](#limitations) - [Pl..."
wikitext
text/x-wiki
<markdown>
This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands.
**Table of Contents**
- [About Strokes and Dictionaries](#about-strokes-and-dictionaries)
- [Plover's Default Dictionaries](#plovers-default-dictionaries)
- [Dictionary priority](#dictionary-priority)
- [JSON and RTF/CRE](#json-and-rtfcre)
- [Limitations](#limitations)
- [Plover Control Commands](#plover-control-commands)
- [Sending Symbols](#sending-symbols)
- [Prefix strokes](#prefix-strokes)
- [Text Formatting](#text-formatting)
- [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes)
- [Glue Operator (Numbers, Fingerspelling)](#glue-operator-numbers-fingerspelling)
- [Capitalizing](#capitalizing)
- [Capitalize Next Word](#capitalize-next-word)
- [Capitalize Last Word](#capitalize-last-word)
- [Uncapitalizing](#uncapitalizing)
- [Uncapitalize Next Word](#uncapitalize-next-word)
- [Uncapitalize Last Word](#uncapitalize-last-word)
- [Carrying Capitalization](#carrying-capitalization)
- [Uppercasing (CAPS)](#uppercasing-caps)
- [Uppercase Next Word](#uppercase-next-word)
- [Uppercase Last Word](#uppercase-last-word)
- [Spacing](#spacing)
- [Suppress Next Space](#suppress-next-space)
- [Manually Add a Space](#manually-add-a-space)
- [Canceling Formatting of Next Word](#canceling-formatting-of-next-word)
- [Format Currency](#format-currency)
- [Conditional](#conditional)
- [Friendly Command Names](#friendly-command-names)
- [Undoable Line Breaks and Tabs](#undoable-line-breaks-and-tabs)
- [Macros](#macros)
- [Undo / Delete Last Stroke](#undo--delete-last-stroke)
- [Repeat Last Stroke](#repeat-last-stroke)
- [Toggle asterisk](#toggle-asterisk)
- [Retroactively Add Space](#retroactively-add-space)
- [Retroactively Delete Space](#retroactively-delete-space)
- [Keyboard Shortcuts](#keyboard-shortcuts)
- [Modifier Names](#modifier-names)
- [Shortcut Key Names](#shortcut-key-names)
- [Example Shortcuts](#example-shortcuts)
- [Escaping Special Characters](#escaping-special-characters)
- ["Do Nothing" Translation](#do-nothing-translation)
- [Output Modes](#output-modes)
- [Reset Command](#reset-command)
- [Modes](#modes)
- [Custom Modes](#custom-modes)
- [Summary of suggested commands you can cut and paste into your dictionary](#summary-of-suggested-commands-you-can-cut-and-paste-into-your-dictionary)
## About Strokes and Dictionaries
If you are new to stenography:
- A _stroke_ is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
- Plover converts that input into English words and phrases on the screen, by using _dictionaries_.
- The dictionaries map a stroke (or a combination of strokes) to an English word or phrase, number, punctuation symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
- Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the `user.json` dictionary that comes with Plover.
## Plover's Default Dictionaries
Plover comes supplied with three dictionaries:
- `main.json`. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
- `commands.json`. This contains [Plover Control Commands](#plover-control-commands).
- `user.json`. This is available for your personal customizations. `user.json` is a blank dictionary. By default, the `user.json` dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.
> **Note:** We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.
### Dictionary priority
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the `user.json` dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.
> **Note:** With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.
## JSON and RTF/CRE
Plover supports two types of dictionaries:
- **JSON** (the default and recommended format), and
- **RTF/CRE**.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
> **Note:** With Plover 4.0+, there is a plugin `plover-python-dictionary` that allows you to use Python (`.py`) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.
### Limitations
There are some limitations with each format:
- RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
- The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
- The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
## Plover Control Commands
You can control some aspects of Plover with [strokes](#strokes-and-dictionaries). Plover's default dictionary (`commands.json`) contains these commands:
| Command name | Command | Default Stroke | Description |
|----------|----------| ----------| ----------|
| Add Translation | `{PLOVER:ADD_TRANSLATION}` | `TKUPT` (think DUPT for "Dictionary UPdaTe") | Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |
| Disable Output | `{PLOVER:SUSPEND}` | `PHRO*F` (think PLOF for "PLover OFf") | Stop translating steno. With a keyboard machine, you will be able to type normally again. |
| Enable Output | `{PLOVER:RESUME}` | `PHRO*PB` (think PLON for "PLover ON") | Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |
| Toggle Output | `{PLOVER:TOGGLE}` | `PHROLG` (think PLOLG, for PLOver toGGLe) | Toggle between output being enabled and disabled. |
These commands are not in `commands.json` by default, but can be added to a dictionary:
| Command name| Command | _Suggested_ Stroke | Description |
|----------|----------| ----------| ----------|
| Look Up Stroke | `{PLOVER:LOOKUP}` | `PHR*UP` | Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |
| Suggestions | `{PLOVER:SUGGESTIONS}` | `PHROGS` (think PLOSHUN) for PLOver suggesTION) | Open and focus the plover suggestions window which will suggest alternative ways of writing |
| Configure | `{PLOVER:CONFIGURE}` | `PHROFG` (think PLOFG, for PLOver conFiG) | Open and focus the Plover configuration window. |
| Focus | `{PLOVER:FOCUS}` | `PHROFBGS` (think PLOFKS, for PLOver focus) | Open and focus the main Plover window. |
| Quit | `{PLOVER:QUIT}` | `PHROBGT` (think PLOKT, for PLOver **qu**i**t**) | Quit Plover entirely. |
| Set configuration | `{PLOVER:SET_CONFIG:option:value}`, `{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}` | | Set Plover config option. |
Example for `SET_CONFIG` Plover command:
* `{PLOVER:SET_CONFIG:'translation_frame_opacity':100}`
* `{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}`
As a side effect, `SET_CONFIG` also reload the (changed) dictionaries.
## Sending Symbols
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
```json
{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}
```
## Prefix strokes
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
```json
{
"S": "word",
"/S": "{prefix^}"
}
```
with a stroke `S`, the translation `"/S": "{prefix^}"` is chosen; unless the previous word is not finished
(for example if the previous translation is `{con^}`), then the translation `"S": "word"` is chosen.
It's possible to explicitly mark a translation as "finished" with `{$}` (or equivalently `{:word_end}`).
See this [blackbox test](https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604)
for an example.
## Text Formatting
### Prefixes, Infixes, and Suffixes
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
- `{^}` is the attach operator.
- `{^ish}` is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. `RED/EURB` will output `reddish`. Note: addition of a second "d" caused by Plover's understanding of English orthography.
- `{^}ish` is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead `redish`.
- `{^-to-^}` is an infix, e.g. `day-to-day`.
- `{in^}` is a prefix, e.g. `influx`.
- Most custom punctuation entries will take advantage of the attach operator, e.g. `{^—^}` for an emdash.
### Glue Operator (Numbers, Fingerspelling)
Glue is sort of like the [attach operator](#prefixes-infixes-suffixes) above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing *only* digits are glued, allowing you to output multiple number strokes to make a large number.
- `{&}` is the glue operator.
- `{&a}`, `{&b}`, `{&c}`, etc. are how the fingerspelling alphabet is made.
- `{&th}` is a multiletter glue stroke, which can be useful (`TH*` in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
`THR/-R/#H/#A/KATS` to get "there are 45 cats" and only `#H` (4) and `#A` (5) are "glued" to each other.
### Capitalizing
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
#### Capitalize Next Word
- `{-|}`
The next word will have a capitalized first letter. In the default dictionary, we have `"KPA": "{-|}"`, which will capitalize the next word; and `"KPA*": "{^}{-|}"` which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like `Ms. {-|}`.
**Default strokes:**
- `KPA`: `{-|}` (think "cap")
- `KPA*`: `{^}{-|}` (also suppresses space)
#### Capitalize Last Word
- `{*-|}`
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in `{*-|}{^ville}`. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as `Catville`.
**Suggested stroke:** `KA*PD`
### Uncapitalizing
#### Uncapitalize Next Word
- `{>}`
Forces the next letter to be lowercase, e.g. `{>}Plover` → `plover`
**Suggested stroke:** `HRO*ER` (lower)
#### Uncapitalize Last Word
- `{*>}`
Rewrite the last word to start with a lowercase letter, e.g. `Plover{*>}` → `plover`
**Suggested stroke:** `HRO*ERD` (lowered)
### Carrying Capitalization
- `{~|text}` or `{^~|text^}` where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! `"You can't eat that!" The baby ate on.`
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like `'til` or `'cause`.
The default dictionary for Plover should use these operators where appropriate.
```json
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
```
For a newline, the syntax would be `{^~|\n^}`.
### Uppercasing (CAPS)
See [Output Modes](#output-modes) for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [Keyboard Shortcut](#keyboard-shortcuts) set to `{#Caps_Lock}` to activate the system CAPS lock like you can on your keyboard.
**Suggested stroke:** `"KA*PS": "{MODE:CAPS}"`
#### Uppercase Next Word
- `{<}`
Output next stroke in capital letters, e.g. `{<}cat` → `CAT`
**Suggested stroke:** `KPA*L` (cap all)
#### Uppercase Last Word
- `{*<}`
Rewrite last word in capital letters, e.g. `cat{*<}` → `CAT`
**Suggested stroke:** `*UPD`
### Spacing
#### Suppress Next Space
- `{^^}` (or `{^}`)
See also: [Retroactively Delete Space](#retroactively-delete-space)
**Default stroke:** `TK-LS` (**D**e**l**ete **S**pace)
This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes).
#### Manually Add a Space
- `{^ ^}`
See also: [Retroactively Add Space](#retroactively-add-space)
**Default stroke:** `S-P` (**SP**ace)
This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes).
### Canceling Formatting of Next Word
In order to cancel formatting of the next word, use the empty meta tag as your definition:
- `{}`
Using `{}` in front of a arrow key commands, as in `{}{#Left}`, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as `{.}`, includes action to capitalize next word.
See also the ["do nothing" translation](#do-nothing-translation)
### Format Currency
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is `{*($c)}` where `$` is any currency symbol you'd like, and `c` is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
- `{*($c)}`: Standard English dollars
+ `23{*($c)}` → $23
+ `2000.5{*($c)}` → $2,000.50
- `{*($c CAD)}`: You can include other text, e.g. when specifying a currency's country
- `100{*($c CAD)}` → $100 CAD
- `{*(c円)}`: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
- `2345{*(c円)}`: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
### Conditional
- `{=regex/text_if_match/text_if_no_match}`
Conditional translation depending on the following text. Outputs `text_if_match` if the following text matches the regex, otherwise outputs `text_if_no_match`. Regex is case-sensitive. For example, `{=[AEIOUaeiou]/an/a}` outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
## Friendly Command Names
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
| Command/macro/meta | Equivalent |
|------|------------|
| `{*}` | `=retrospective_toggle_asterisk` |
| `{*!}` | `=retrospective_delete_space` |
| `{*?}` | `=retrospective_insert_space` |
| `{*+}` | `=repeat_last_stroke` |
| `{^}` | `{:attach}` |
| `{^word}` | `{:attach:^word}` |
| `{word^}` | `{:attach:word^}` |
| `{^word^}` | `{:attach:word}` |
| `{&a}` | `{:glue:a}` |
| `{-\|}` | `{:case:cap_first_word}` |
| `{*-\|}` | `{:retro_case:cap_first_word}` |
| `{~\|word}` | `{:carry_capitalize:word}` |
| `{<}` | `{:case:upper_first_word}` |
| `{*<}` | `{:retro_case:upper_first_word}` |
| `{>}` | `{:case:lower_first_char}` |
| `{*>}` | `{:retro_case:lower_first_char}` |
| `{*($c)}` | `{:retro_currency:$c}` |
| `{#shift(a)}` | `{:key_combo:shift(a)}` |
| `{PLOVER:LOOKUP}` | `{:command:LOOKUP}` |
| `{MODE:CAPS}` | `{:mode:CAPS}` |
| `{.}` | `{:stop:.}` |
| `{,}` | `{:comma:,}` |
| `{$}` | `{:word_end}` |
Note that currently the `{#a}` form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to `{:key_combo:a}` will enter the raw stroke into the text box.
## Undoable Line Breaks and Tabs
When you use [keyboard shortcuts](#keyboard-shortcuts), the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, `{#return}` and `{#tab}` don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
- `\n` or `\r` for line breaks.
- `\t` for tabs.
For example:
- `{^\n^}{-|}`
This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
- `{^\t^}`
This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
## Macros
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
### Undo / Delete Last Stroke
- `=undo`
The built-in "undo" macro is assigned to the asterisk key `*`. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is `=undo`
### Repeat Last Stroke
- `{*+}`
A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; `"#": "{*+}"`; causing `KAT/#/#` to behave like `KAT/KAT/KAT`.
Repeat last stroke `{*+}` is very useful for keys that you repeat. For example, when you are moving around text in a document.
**Suggested stroke:** `#`
### Toggle asterisk
- `{*}`
A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, `"#*": "{*}"`, when you write `KAT/#*` it will behave as if you wrote `KA*T`.
Toggle asterisk `{*}` is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk `{*}` to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
**Suggested stroke:** `#*`
### Retroactively Add Space
- `{*?}`
A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained `PER` as "Perfect", `SWAEUGS` as "Situation" and `PER/SWAEUGS` as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the `{*?}` stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
**Suggested stroke:** `AFPS` (add space)
### Retroactively Delete Space
- `{*!}`
A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
**Suggested stroke:** `TK-FPS` (**d**elete space)
## Keyboard Shortcuts
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
**Note:** Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. *It used to be possible to send "+" by writing `{#plus}`, but the system has been updated.*
- `{#}` is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
- `{#a b c d}` will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
- `{#equal plus}` will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
### Modifier Names
If you want to use a modifier, use it by name (e.g. `Shift_L`). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
| Modifier | Command Key Names (case-insensitive) |
|----------|----------|
| Shift | `Shift_L`, `Shift_R`, `shift` |
| Control | `Control_L`, `Control_R`, `control` |
| Alt | `Alt_L`, `Alt_R`, `alt`, `option` |
| Super | `Super_L`, `Super_R`, `super`, `windows`, `command` |
For modifiers, use parentheses to delimit where the keys are pressed down.
### Shortcut Key Names
Here are the key names you'll want to use:
| Keys | Command Key Names (case-insensitive) |
|----------|----------|
| Letters | `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z` |
| Accented Letters (international layouts) | `udiaeresis`, `eacute`, etc. |
| Numbers | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` |
| Control Keys | `Escape`, `Tab`, `Caps_Lock`, `space`, `BackSpace`, `Delete`, `Return`, etc. |
| F-Keys | `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12` |
| Common Named Keys | `= equal`<br />`- minus`<br />`[ bracketleft`<br />`] bracketright`<br />`/ slash`<br />`\ backslash`<br />`' quoteright`<br />`, comma`<br />`. period`<br />`; semicolon`<br />`~ asciitilde`<br />`^ asciicircum`<br />`` ` quoteleft``<br />[…and more](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21) |
| Media Keys | **Common**: `AudioRaiseVolume`, `AudioLowerVolume`, `AudioMute`, `AudioNext`, `AudioPrev`, `AudioStop`, `AudioPlay`, `AudioPause`, `Eject`<br />**Mac**: `MonBrightnessUp`, `MonBrightnessDown`, `KbdBrightnessUp`, `KbdBrightnessDown`<br />**Windows**: `Back`, `Forward`, `Refresh`<br />**Linux**: XF86 key names are supported, for example `XF86_MonBrightnessUp` - refer to [the definition file in `python-xlib`](https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py) for the key names. |
Consult the code for the [full list of supported keyboard shortcut keys](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21).
**Note:** a key name will determine a key to emulate with **no modifiers** based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: `{#at}` will only press the `2` key. To get the `@` symbol, we need to add the shift key: `{#shift(at)}`, which is functionally the same as `{#shift(2)}`.
### Example Shortcuts
Here are some shortcuts. They are in JSON format:
- `"STPH-G": "{#right}"` — right arrow on the keyboard, for moving the cursor to the right once
- `"SKWR-G": "{#shift(right)}"` — shift and right arrow on the keyboard, for selecting one character
- `"SKWR-BG": "{#control(shift(right))}"` — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
- `"SKWR-BG": "{#option(shift(right))}"` — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
- `"TKAO*UP": "{#control(c v v v)}"` — copy, then paste 3 times
- `"SKPH-Z": "{#control(z shift(z))"` — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. `{#control(z shift(z))` is the same as `"{#CONTROL_L(Z SHIFT(Z))}"`
### Escaping Special Characters
Most symbols (e.g. `+, =, ~, r`) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
| Symbol | Escaped Form |
|----------|----------|
| `\` | `\\` |
| `{` | `\{` |
| `}` | `\}` |
`\` is a special case. It must be escaped only if there's any possible ambiguity.
Special case: `=content` might be interpreted as the invocation of a macro named `content`.
Use `{#}=content` instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature,
you need to escape those characters in addition, according to JSON syntax:
| Symbol | Escaped Form |
|----------|----------|
| `\` | `\\` |
| `"` | `\"` |
Example:
| JSON | Plover show | Plover input | Plover output |
|-|-|-|-|
| `"ab"` | `ab` | `ab` | `<a> <b>` |
| `"\\{"` | `\{` | `\{` | `<{>` |
| `"\\\\{"` | `\\{` | `\\{` | `<\> <{>` |
| `"\""` | `"` | `"` | `<">` |
| `"\\"` | `\` | `\` | `<\>` |
| `"\\\\"` | `\\` | `\\` | `<\> <\>` |
| `"\\\\\\"` | `\\\` | `\\\` | `<\> <\> <\>` |
| `"\n"` | `\n` | `\n` | `<\n>` |
| `"\\n"` | `\\n` | `\\n` | `<\> <n>` |
| `"\\x"` | `\x` | `\x` | `<\> <x>` |
| `"\\\n"` | `\\n` | (none) | `<\> <\n>` |
| `"\\\\n"` | `\\\n` | `\\\n` | `<\> <\> <n>` |
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation"
dialog. `(none)` means it's only possible to obtain the entry by editing the JSON in an
external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is
pressed.
### "Do Nothing" Translation
You can use the keyboard shortcut syntax (`{#}`) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to `{#}` will effectively do nothing but show up in your logs.
- `{#}` an effective "null" stroke.
See also: [Canceling Formatting of Next Word](#canceling-formatting-of-next-word)
## Output Modes
- `{MODE:}` is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
**Output modes** are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
1. Turn on CAPS LOCK.
1. Write in capital letters.
1. Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
### Reset Command
You can reset the output mode to its default with `{MODE:RESET}`.
> **Important**: We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.
- `{MODE:RESET}`: Reset the case and space character. We recommended this for getting out of any custom output mode.
For example: `"R-R": "{^~|\n^}{MODE:RESET}"` and `"TPEFBG": "{#escape}{MODE:RESET}"`
- `{MODE:RESET_CASE}`: Exit caps, lower, or title case.
- `{MODE:RESET_SPACE}`: Use spaces as normal.
### Modes
There are some built-in modes you can use:
| Dictionary Syntax | Sample Output |
|-----------|---------|
| `{MODE:CAPS}` | THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |
| `{MODE:TITLE}` | The Quick Brown Fox Jumps Over The Lazy Dog. |
| `{MODE:LOWER}` | the quick brown fox jumps over the lazy dog. |
| `{MODE:CAMEL}` | theQuickBrownFoxJumpsOverTheLazyDog. |
| `{MODE:SNAKE}` | The_quick_brown_fox_jumps_over_the_lazy_dog. |
### Custom Modes
You can define your own custom modes with the `SET_SPACE:` operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as `SET_SPACE:_`.
Here are some other examples:
| Dictionary Syntax | Sample Output |
|---------|-----------|
| `{MODE:SET_SPACE:}` | Thequickbrownfoxjumpsoverthelazydog. |
| `{MODE:SET_SPACE:-}` | The-quick-brown-fox-jumps-over-the-lazy-dog. |
| `{MODE:SET_SPACE:😁}` | The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |
## Summary of suggested commands you can cut and paste into your dictionary
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
```json
{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}
```
> **Note:** The final entry must not have a trailing comma.
</markdown>
ca22c33d9e41aaefbd9d6eb82f572b2601c5746e
82
56
2024-02-05T18:01:43Z
Rice
1
wikitext
text/x-wiki
<markdown>
This page contains an explanation for the syntax used in Plover's dictionaries, as well as the operators that control capitalization, spacing, keyboard shortcuts, and other commands.
**Table of Contents**
- [About Strokes and Dictionaries](#about-strokes-and-dictionaries)
- [Plover's Default Dictionaries](#plovers-default-dictionaries)
- [Dictionary priority](#dictionary-priority)
- [JSON and RTF/CRE](#json-and-rtfcre)
- [Limitations](#limitations)
- [Plover Control Commands](#plover-control-commands)
- [Sending Symbols](#sending-symbols)
- [Prefix strokes](#prefix-strokes)
- [Text Formatting](#text-formatting)
- [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes)
- [Glue Operator (Numbers, Fingerspelling)](#glue-operator-numbers-fingerspelling)
- [Capitalizing](#capitalizing)
- [Capitalize Next Word](#capitalize-next-word)
- [Capitalize Last Word](#capitalize-last-word)
- [Uncapitalizing](#uncapitalizing)
- [Uncapitalize Next Word](#uncapitalize-next-word)
- [Uncapitalize Last Word](#uncapitalize-last-word)
- [Carrying Capitalization](#carrying-capitalization)
- [Uppercasing (CAPS)](#uppercasing-caps)
- [Uppercase Next Word](#uppercase-next-word)
- [Uppercase Last Word](#uppercase-last-word)
- [Spacing](#spacing)
- [Suppress Next Space](#suppress-next-space)
- [Manually Add a Space](#manually-add-a-space)
- [Canceling Formatting of Next Word](#canceling-formatting-of-next-word)
- [Format Currency](#format-currency)
- [Conditional](#conditional)
- [Friendly Command Names](#friendly-command-names)
- [Undoable Line Breaks and Tabs](#undoable-line-breaks-and-tabs)
- [Macros](#macros)
- [Undo / Delete Last Stroke](#undo--delete-last-stroke)
- [Repeat Last Stroke](#repeat-last-stroke)
- [Toggle asterisk](#toggle-asterisk)
- [Retroactively Add Space](#retroactively-add-space)
- [Retroactively Delete Space](#retroactively-delete-space)
- [Keyboard Shortcuts](#keyboard-shortcuts)
- [Modifier Names](#modifier-names)
- [Shortcut Key Names](#shortcut-key-names)
- [Example Shortcuts](#example-shortcuts)
- [Escaping Special Characters](#escaping-special-characters)
- ["Do Nothing" Translation](#do-nothing-translation)
- [Output Modes](#output-modes)
- [Reset Command](#reset-command)
- [Modes](#modes)
- [Custom Modes](#custom-modes)
- [Summary of suggested commands you can cut and paste into your dictionary](#summary-of-suggested-commands-you-can-cut-and-paste-into-your-dictionary)
## About Strokes and Dictionaries
If you are new to stenography:
- A _stroke_ is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
- Plover converts that input into English words and phrases on the screen, by using _dictionaries_.
- The dictionaries map a stroke (or a combination of strokes) to an English word or phrase, number, punctuation symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
- Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the `user.json` dictionary that comes with Plover.
## Plover's Default Dictionaries
Plover comes supplied with three dictionaries:
- `main.json`. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
- `commands.json`. This contains [Plover Control Commands](#plover-control-commands).
- `user.json`. This is available for your personal customizations. `user.json` is a blank dictionary. By default, the `user.json` dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.
> **Note:** We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.
### Dictionary priority
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the `user.json` dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.
> **Note:** With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.
## JSON and RTF/CRE
Plover supports two types of dictionaries:
- **JSON** (the default and recommended format), and
- **RTF/CRE**.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
> **Note:** With Plover 4.0+, there is a plugin `plover-python-dictionary` that allows you to use Python (`.py`) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.
### Limitations
There are some limitations with each format:
- RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
- The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
- The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
## Plover Control Commands
You can control some aspects of Plover with [strokes](#strokes-and-dictionaries). Plover's default dictionary (`commands.json`) contains these commands:
| Command name | Command | Default Stroke | Description |
|----------|----------| ----------| ----------|
| Add Translation | `{PLOVER:ADD_TRANSLATION}` | `TKUPT` (think DUPT for "Dictionary UPdaTe") | Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry. |
| Disable Output | `{PLOVER:SUSPEND}` | `PHRO*F` (think PLOF for "PLover OFf") | Stop translating steno. With a keyboard machine, you will be able to type normally again. |
| Enable Output | `{PLOVER:RESUME}` | `PHRO*PB` (think PLON for "PLover ON") | Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode. |
| Toggle Output | `{PLOVER:TOGGLE}` | `PHROLG` (think PLOLG, for PLOver toGGLe) | Toggle between output being enabled and disabled. |
These commands are not in `commands.json` by default, but can be added to a dictionary:
| Command name| Command | _Suggested_ Stroke | Description |
|----------|----------| ----------| ----------|
| Look Up Stroke | `{PLOVER:LOOKUP}` | `PHR*UP` | Open a search dialog that you write a translation into to get a list of entries in your dictionaries. |
| Suggestions | `{PLOVER:SUGGESTIONS}` | `PHROGS` (think PLOSHUN) for PLOver suggesTION) | Open and focus the plover suggestions window which will suggest alternative ways of writing |
| Configure | `{PLOVER:CONFIGURE}` | `PHROFG` (think PLOFG, for PLOver conFiG) | Open and focus the Plover configuration window. |
| Focus | `{PLOVER:FOCUS}` | `PHROFBGS` (think PLOFKS, for PLOver focus) | Open and focus the main Plover window. |
| Quit | `{PLOVER:QUIT}` | `PHROBGT` (think PLOKT, for PLOver **qu**i**t**) | Quit Plover entirely. |
| Set configuration | `{PLOVER:SET_CONFIG:option:value}`, `{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}` | | Set Plover config option. |
Example for `SET_CONFIG` Plover command:
* `{PLOVER:SET_CONFIG:'translation_frame_opacity':100}`
* `{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}`
As a side effect, `SET_CONFIG` also reload the (changed) dictionaries.
## Sending Symbols
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
```json
{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}
```
## Prefix strokes
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
```json
{
"S": "word",
"/S": "{prefix^}"
}
```
with a stroke `S`, the translation `"/S": "{prefix^}"` is chosen; unless the previous word is not finished
(for example if the previous translation is `{con^}`), then the translation `"S": "word"` is chosen.
It's possible to explicitly mark a translation as "finished" with `{$}` (or equivalently `{:word_end}`).
See this [blackbox test](https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604)
for an example.
## Text Formatting
### Prefixes, Infixes, and Suffixes
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
- `{^}` is the attach operator.
- `{^ish}` is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. `RED/EURB` will output `reddish`. Note: addition of a second "d" caused by Plover's understanding of English orthography.
- `{^}ish` is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead `redish`.
- `{^-to-^}` is an infix, e.g. `day-to-day`.
- `{in^}` is a prefix, e.g. `influx`.
- Most custom punctuation entries will take advantage of the attach operator, e.g. `{^—^}` for an emdash.
### Glue Operator (Numbers, Fingerspelling)
Glue is sort of like the [attach operator](#prefixes-infixes-suffixes) above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing *only* digits are glued, allowing you to output multiple number strokes to make a large number.
- `{&}` is the glue operator.
- `{&a}`, `{&b}`, `{&c}`, etc. are how the fingerspelling alphabet is made.
- `{&th}` is a multiletter glue stroke, which can be useful (`TH*` in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
`THR/-R/#H/#A/KATS` to get "there are 45 cats" and only `#H` (4) and `#A` (5) are "glued" to each other.
### Capitalizing
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
#### Capitalize Next Word
- `{-|}`
The next word will have a capitalized first letter. In the default dictionary, we have `"KPA": "{-|}"`, which will capitalize the next word; and `"KPA*": "{^}{-|}"` which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like `Ms. {-|}`.
**Default strokes:**
- `KPA`: `{-|}` (think "cap")
- `KPA*`: `{^}{-|}` (also suppresses space)
#### Capitalize Last Word
- `{*-|}`
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in `{*-|}{^ville}`. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as `Catville`.
**Suggested stroke:** `KA*PD`
### Uncapitalizing
#### Uncapitalize Next Word
- `{>}`
Forces the next letter to be lowercase, e.g. `{>}Plover` → `plover`
**Suggested stroke:** `HRO*ER` (lower)
#### Uncapitalize Last Word
- `{*>}`
Rewrite the last word to start with a lowercase letter, e.g. `Plover{*>}` → `plover`
**Suggested stroke:** `HRO*ERD` (lowered)
### Carrying Capitalization
- `{~|text}` or `{^~|text^}` where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! `"You can't eat that!" The baby ate on.`
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like `'til` or `'cause`.
The default dictionary for Plover should use these operators where appropriate.
```json
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
```
For a newline, the syntax would be `{^~|\n^}`.
### Uppercasing (CAPS)
See [Output Modes](#output-modes) for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [Keyboard Shortcut](#keyboard-shortcuts) set to `{#Caps_Lock}` to activate the system CAPS lock like you can on your keyboard.
**Suggested stroke:** `"KA*PS": "{MODE:CAPS}"`
#### Uppercase Next Word
- `{<}`
Output next stroke in capital letters, e.g. `{<}cat` → `CAT`
**Suggested stroke:** `KPA*L` (cap all)
#### Uppercase Last Word
- `{*<}`
Rewrite last word in capital letters, e.g. `cat{*<}` → `CAT`
**Suggested stroke:** `*UPD`
### Spacing
#### Suppress Next Space
- `{^^}` (or `{^}`)
See also: [Retroactively Delete Space](#retroactively-delete-space)
**Default stroke:** `TK-LS` (**D**e**l**ete **S**pace)
This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes).
#### Manually Add a Space
- `{^ ^}`
See also: [Retroactively Add Space](#retroactively-add-space)
**Default stroke:** `S-P` (**SP**ace)
This is a special case of an infix. See also [Prefixes, Infixes, and Suffixes](#prefixes-infixes-and-suffixes).
### Canceling Formatting of Next Word
In order to cancel formatting of the next word, use the empty meta tag as your definition:
- `{}`
Using `{}` in front of a arrow key commands, as in `{}{#Left}`, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as `{.}`, includes action to capitalize next word.
See also the ["do nothing" translation](#do-nothing-translation)
### Format Currency
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is `{*($c)}` where `$` is any currency symbol you'd like, and `c` is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
- `{*($c)}`: Standard English dollars
+ `23{*($c)}` → $23
+ `2000.5{*($c)}` → $2,000.50
- `{*($c CAD)}`: You can include other text, e.g. when specifying a currency's country
- `100{*($c CAD)}` → $100 CAD
- `{*(c円)}`: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
- `2345{*(c円)}`: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
### Conditional
- `{=regex/text_if_match/text_if_no_match}`
Conditional translation depending on the following text. Outputs `text_if_match` if the following text matches the regex, otherwise outputs `text_if_no_match`. Regex is case-sensitive. For example, `{=[AEIOUaeiou]/an/a}` outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
## Friendly Command Names
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
| Command/macro/meta | Equivalent |
|------|------------|
| `{*}` | `=retrospective_toggle_asterisk` |
| `{*!}` | `=retrospective_delete_space` |
| `{*?}` | `=retrospective_insert_space` |
| `{*+}` | `=repeat_last_stroke` |
| `{^}` | `{:attach}` |
| `{^word}` | `{:attach:^word}` |
| `{word^}` | `{:attach:word^}` |
| `{^word^}` | `{:attach:word}` |
| `{&a}` | `{:glue:a}` |
| `{-\|}` | `{:case:cap_first_word}` |
| `{*-\|}` | `{:retro_case:cap_first_word}` |
| `{~\|word}` | `{:carry_capitalize:word}` |
| `{<}` | `{:case:upper_first_word}` |
| `{*<}` | `{:retro_case:upper_first_word}` |
| `{>}` | `{:case:lower_first_char}` |
| `{*>}` | `{:retro_case:lower_first_char}` |
| `{*($c)}` | `{:retro_currency:$c}` |
| `{#shift(a)}` | `{:key_combo:shift(a)}` |
| `{PLOVER:LOOKUP}` | `{:command:LOOKUP}` |
| `{MODE:CAPS}` | `{:mode:CAPS}` |
| `{.}` | `{:stop:.}` |
| `{,}` | `{:comma:,}` |
| `{$}` | `{:word_end}` |
Note that currently the `{#a}` form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to `{:key_combo:a}` will enter the raw stroke into the text box.
## Undoable Line Breaks and Tabs
When you use [keyboard shortcuts](#keyboard-shortcuts), the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, `{#return}` and `{#tab}` don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
- `\n` or `\r` for line breaks.
- `\t` for tabs.
For example:
- `{^\n^}{-|}`
This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
- `{^\t^}`
This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
## Macros
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
### Undo / Delete Last Stroke
- `=undo`
The built-in "undo" macro is assigned to the asterisk key `*`. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is `=undo`
### Repeat Last Stroke
- `{*+}`
A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; `"#": "{*+}"`; causing `KAT/#/#` to behave like `KAT/KAT/KAT`.
Repeat last stroke `{*+}` is very useful for keys that you repeat. For example, when you are moving around text in a document.
**Suggested stroke:** `#`
### Toggle asterisk
- `{*}`
A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, `"#*": "{*}"`, when you write `KAT/#*` it will behave as if you wrote `KA*T`.
Toggle asterisk `{*}` is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk `{*}` to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
**Suggested stroke:** `#*`
### Retroactively Add Space
- `{*?}`
A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained `PER` as "Perfect", `SWAEUGS` as "Situation" and `PER/SWAEUGS` as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the `{*?}` stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
**Suggested stroke:** `AFPS` (add space)
### Retroactively Delete Space
- `{*!}`
A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
**Suggested stroke:** `TK-FPS` (**d**elete space)
## Keyboard Shortcuts
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
**Note:** Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. *It used to be possible to send "+" by writing `{#plus}`, but the system has been updated.*
- `{#}` is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
- `{#a b c d}` will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
- `{#equal plus}` will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
### Modifier Names
If you want to use a modifier, use it by name (e.g. `Shift_L`). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
| Modifier | Command Key Names (case-insensitive) |
|----------|----------|
| Shift | `Shift_L`, `Shift_R`, `shift` |
| Control | `Control_L`, `Control_R`, `control` |
| Alt | `Alt_L`, `Alt_R`, `alt`, `option` |
| Super | `Super_L`, `Super_R`, `super`, `windows`, `command` |
For modifiers, use parentheses to delimit where the keys are pressed down.
### Shortcut Key Names
Here are the key names you'll want to use:
| Keys | Command Key Names (case-insensitive) |
|----------|----------|
| Letters | `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z` |
| Accented Letters (international layouts) | `udiaeresis`, `eacute`, etc. |
| Numbers | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9` |
| Control Keys | `Escape`, `Tab`, `Caps_Lock`, `space`, `BackSpace`, `Delete`, `Return`, etc. |
| F-Keys | `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12` |
| Common Named Keys | `= equal`<br />`- minus`<br />`[ bracketleft`<br />`] bracketright`<br />`/ slash`<br />`\ backslash`<br />`' quoteright`<br />`, comma`<br />`. period`<br />`; semicolon`<br />`~ asciitilde`<br />`^ asciicircum`<br />`` ` quoteleft``<br />[…and more](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21) |
| Media Keys | **Common**: `AudioRaiseVolume`, `AudioLowerVolume`, `AudioMute`, `AudioNext`, `AudioPrev`, `AudioStop`, `AudioPlay`, `AudioPause`, `Eject`<br />**Mac**: `MonBrightnessUp`, `MonBrightnessDown`, `KbdBrightnessUp`, `KbdBrightnessDown`<br />**Windows**: `Back`, `Forward`, `Refresh`<br />**Linux**: XF86 key names are supported, for example `XF86_MonBrightnessUp` - refer to [the definition file in `python-xlib`](https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py) for the key names. |
Consult the code for the [full list of supported keyboard shortcut keys](https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21).
**Note:** a key name will determine a key to emulate with **no modifiers** based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: `{#at}` will only press the `2` key. To get the `@` symbol, we need to add the shift key: `{#shift(at)}`, which is functionally the same as `{#shift(2)}`.
### Example Shortcuts
Here are some shortcuts. They are in JSON format:
- `"STPH-G": "{#right}"` — right arrow on the keyboard, for moving the cursor to the right once
- `"SKWR-G": "{#shift(right)}"` — shift and right arrow on the keyboard, for selecting one character
- `"SKWR-BG": "{#control(shift(right))}"` — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
- `"SKWR-BG": "{#option(shift(right))}"` — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
- `"TKAO*UP": "{#control(c v v v)}"` — copy, then paste 3 times
- `"SKPH-Z": "{#control(z shift(z))"` — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. `{#control(z shift(z))` is the same as `"{#CONTROL_L(Z SHIFT(Z))}"`
### Escaping Special Characters
Most symbols (e.g. `+, =, ~, r`) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
| Symbol | Escaped Form |
|----------|----------|
| `\` | `\\` |
| `{` | `\{` |
| `}` | `\}` |
`\` is a special case. It must be escaped only if there's any possible ambiguity.
Special case: `=content` might be interpreted as the invocation of a macro named `content`.
Use `{#}=content` instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature,
you need to escape those characters in addition, according to JSON syntax:
| Symbol | Escaped Form |
|----------|----------|
| `\` | `\\` |
| `"` | `\"` |
Example:
| JSON | Plover show | Plover input | Plover output |
|-|-|-|-|
| `"ab"` | `ab` | `ab` | `<a> <b>` |
| `"\\{"` | `\{` | `\{` | `<{>` |
| `"\\\\{"` | `\\{` | `\\{` | `<\> <{>` |
| `"\""` | `"` | `"` | `<">` |
| `"\\"` | `\` | `\` | `<\>` |
| `"\\\\"` | `\\` | `\\` | `<\> <\>` |
| `"\\\\\\"` | `\\\` | `\\\` | `<\> <\> <\>` |
| `"\n"` | `\n` | `\n` | `<\n>` |
| `"\\n"` | `\\n` | `\\n` | `<\> <n>` |
| `"\\x"` | `\x` | `\x` | `<\> <x>` |
| `"\\\n"` | `\\n` | (none) | `<\> <\n>` |
| `"\\\\n"` | `\\\n` | `\\\n` | `<\> <\> <n>` |
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation"
dialog. `(none)` means it's only possible to obtain the entry by editing the JSON in an
external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is
pressed.
### "Do Nothing" Translation
You can use the keyboard shortcut syntax (`{#}`) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to `{#}` will effectively do nothing but show up in your logs.
- `{#}` an effective "null" stroke.
See also: [Canceling Formatting of Next Word](#canceling-formatting-of-next-word)
## Output Modes
- `{MODE:}` is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
**Output modes** are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
1. Turn on CAPS LOCK.
1. Write in capital letters.
1. Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
### Reset Command
You can reset the output mode to its default with `{MODE:RESET}`.
> **Important**: We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.
- `{MODE:RESET}`: Reset the case and space character. We recommended this for getting out of any custom output mode.
For example: `"R-R": "{^~|\n^}{MODE:RESET}"` and `"TPEFBG": "{#escape}{MODE:RESET}"`
- `{MODE:RESET_CASE}`: Exit caps, lower, or title case.
- `{MODE:RESET_SPACE}`: Use spaces as normal.
### Modes
There are some built-in modes you can use:
| Dictionary Syntax | Sample Output |
|-----------|---------|
| `{MODE:CAPS}` | THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |
| `{MODE:TITLE}` | The Quick Brown Fox Jumps Over The Lazy Dog. |
| `{MODE:LOWER}` | the quick brown fox jumps over the lazy dog. |
| `{MODE:CAMEL}` | theQuickBrownFoxJumpsOverTheLazyDog. |
| `{MODE:SNAKE}` | The_quick_brown_fox_jumps_over_the_lazy_dog. |
### Custom Modes
You can define your own custom modes with the `SET_SPACE:` operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as `SET_SPACE:_`.
Here are some other examples:
| Dictionary Syntax | Sample Output |
|---------|-----------|
| `{MODE:SET_SPACE:}` | Thequickbrownfoxjumpsoverthelazydog. |
| `{MODE:SET_SPACE:-}` | The-quick-brown-fox-jumps-over-the-lazy-dog. |
| `{MODE:SET_SPACE:😁}` | The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog. |
## Summary of suggested commands you can cut and paste into your dictionary
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
```json
{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}
```
> **Note:** The final entry must not have a trailing comma.
</markdown>
[[Category:Plover]]
773a5ab26e511bf3cb2443e83e0d303abb71b737
Built-in tools
0
12
57
2024-02-05T16:00:20Z
Rice
1
Created page with "<markdown> Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window. <!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. --> ## Configure Plover The con..."
wikitext
text/x-wiki
<markdown>
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
<!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. -->
## Configure Plover
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
## Paper tape
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
## Stroke suggestions
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window.
## Lookup tool
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in tools#Dictionary editor]].
## Plugins manager
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the _Install/Update_ button. To uninstall a plugin, select it and click _Uninstall_. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
## Main window
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
### Dictionaries field
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
- A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
- If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
- A checkbox to enable and disable the dictionary.
- The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
- Undo the last dictionary adding, deleting or reordering operation.
- Use the [[dictionary editor|Built-in tools#Dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
- Remove a dictionary from the list.
- Add a dictionary to the list.
- [[Add an entry|Built-in tools#Add translation dialog]] to the selected dictionary.
- Move the selected dictionaries up on the list.
- Move the selected dictionaries down on the list.
## Dictionary editor
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
- Undo last action.
- Remove selected entry/entries.
- Add a new entry.
## Add translation dialog
A dialog to add an entry to a dictionary. It has three fields:
- Which dictionary to add an entry to.
- The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
- What they should translate to. Below this field you should see any strokes already mapped to the translation.
- A cancel button that closes the dialog.
- An okay button that adds the entry and closes the dialog.
</markdown>
3d631e488cf0989e9267453ba2c60604aaa50641
83
57
2024-02-05T18:01:58Z
Rice
1
wikitext
text/x-wiki
<markdown>
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
<!-- TODO: make formatting of button and checkbox names consistent. Right now, the long ones use quotes and the short ones use italics, but that may look a bit odd. -->
## Configure Plover
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
## Paper tape
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
## Stroke suggestions
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window.
## Lookup tool
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in tools#Dictionary editor]].
## Plugins manager
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the _Install/Update_ button. To uninstall a plugin, select it and click _Uninstall_. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
## Main window
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
### Dictionaries field
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
- A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
- If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
- A checkbox to enable and disable the dictionary.
- The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
- Undo the last dictionary adding, deleting or reordering operation.
- Use the [[dictionary editor|Built-in tools#Dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
- Remove a dictionary from the list.
- Add a dictionary to the list.
- [[Add an entry|Built-in tools#Add translation dialog]] to the selected dictionary.
- Move the selected dictionaries up on the list.
- Move the selected dictionaries down on the list.
## Dictionary editor
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
- Undo last action.
- Remove selected entry/entries.
- Add a new entry.
## Add translation dialog
A dialog to add an entry to a dictionary. It has three fields:
- Which dictionary to add an entry to.
- The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
- What they should translate to. Below this field you should see any strokes already mapped to the translation.
- A cancel button that closes the dialog.
- An okay button that adds the entry and closes the dialog.
</markdown>
[[Category:Plover]]
bcbfca93742bbc10ccca042c7d5a7e8bd9bc3ead
Open Steno Project timeline
0
13
58
2024-02-05T16:00:58Z
Rice
1
Created page with "<markdown> The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious. ### September 2005 to March 2007 (18 months) > Backstory [Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute. ### 2007 > Backstory Mirabai creates a dictionary..."
wikitext
text/x-wiki
<markdown>
The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
### September 2005 to March 2007 (18 months)
> Backstory
[Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute.
### 2007
> Backstory
Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
### 2008
> Backstory
Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
### October 2009
> Plover
Mirabai meets [Joshua Lifton](https://www.crunchbase.com/person/joshua-lifton#/entity), via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
### June 2010
> Education
Mirabai begins writing her Steno 101 series.
### October 2010
> Plover
First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
### December 2010
> Plover
Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
### April 2011
> Education
Mirabai posts musings and thoughts about gamifying steno education. She calls it [Hover Plover](http://plover.stenoknight.com/2011/04/hover-plover.html) (later renamed to Steno Arcade).
### October 2011
> Plover
Hesky Fisher starts working on Plover.
### May 2012
> Plover
Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
### April 2013
> Third-party
[Brent Nesbitt](https://github.com/brentn) releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
### July 2013
> Plover
Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
### August 2013
> Education
Mike Neale introduces steno-training website [QwertySteno](http://qwertysteno.com/).
> Hardware
Josh Lifton announces plans to build an open source steno keyboard, the [Stenosaurus](http://stenosaurus.blogspot.ca/).
### September 2013
> Education
Jay Liu introduces steno-training website [Plover Dojo](http://ploverdojo.appspot.com/).
> Education
Zach Brown, a technical writer, publishes the first half of [Learn Plover!](https://www.openstenoproject.org/learn-plover/). Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
### January 2014
> Plover
Now at version 2.5.8, Hesky slows development to focus on other projects.
### April 2014
> Hardware
Emanuele Caruso announces the [Stenoboard](http://www.stenoboard.com/), an open source stenographic split 3D-printed keyboard.
### Summer 2015
> Plover
Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
### August 2015
> Plover
Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
### September 2015
> Plover
Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
### December 2015
> Hardware
Scott Urueta announces and starts selling the [SOFT/HRUF](https://softhruf.love), an open source 3D-printed steno machine with light linear mechanical switches.
### March 2016
> Plover
"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.
> Education
[Steno Arcade](http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html) crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
### April 2016
> Plover
Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
### September 2016
> Hardware
Charley Shattuck starts to sell his customizable steno machine, the [Stenomod](https://stenomod.blogspot.ca/). The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
### October 2016
> Education
Josh Grams introduces JavaScript-based drilling website [Steno Jig](https://joshuagrams.github.io/steno-jig/).
### November 2016
> Plover
Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
### The future - 2017 and onwards
Don't worry, Plover development continues. You can see the [issues and feature requests on GitHub](https://github.com/openstenoproject/plover/issues), join in the developer discussions by joining the [Plover #devtalk forum](https://discordapp.com/channels/136953735426473984/144999734254370816), and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
### January 2019
> Hardware
Jane from [gBoards](https://www.gboards.ca/) begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
### February 2021
> Hardware
Peter from [StenoKeyboards](https://stenokeyboards.com/) starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
### April 2021
> Hardware
Nathan and Lenno from [Nolltronics](https://nolltronics.com/) releases the EcoSteno and starts to sell them.
### July 2021
> Plover
Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
</markdown>
d93a6edb54cafe72ced1cefad8c90ff8785f4936
84
58
2024-02-05T18:02:16Z
Rice
1
wikitext
text/x-wiki
<markdown>
The [Open Steno Project](https://www.opensteno.org) has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
### September 2005 to March 2007 (18 months)
> Backstory
[Mirabai Knight](https://stenoknight.com/) attends the New York Career Institute to learn stenography at 225 words per minute.
### 2007
> Backstory
Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
### 2008
> Backstory
Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
### October 2009
> Plover
Mirabai meets [Joshua Lifton](https://www.crunchbase.com/person/joshua-lifton#/entity), via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
### June 2010
> Education
Mirabai begins writing her Steno 101 series.
### October 2010
> Plover
First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
### December 2010
> Plover
Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
### April 2011
> Education
Mirabai posts musings and thoughts about gamifying steno education. She calls it [Hover Plover](http://plover.stenoknight.com/2011/04/hover-plover.html) (later renamed to Steno Arcade).
### October 2011
> Plover
Hesky Fisher starts working on Plover.
### May 2012
> Plover
Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
### April 2013
> Third-party
[Brent Nesbitt](https://github.com/brentn) releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
### July 2013
> Plover
Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
### August 2013
> Education
Mike Neale introduces steno-training website [QwertySteno](http://qwertysteno.com/).
> Hardware
Josh Lifton announces plans to build an open source steno keyboard, the [Stenosaurus](http://stenosaurus.blogspot.ca/).
### September 2013
> Education
Jay Liu introduces steno-training website [Plover Dojo](http://ploverdojo.appspot.com/).
> Education
Zach Brown, a technical writer, publishes the first half of [Learn Plover!](https://www.openstenoproject.org/learn-plover/). Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
### January 2014
> Plover
Now at version 2.5.8, Hesky slows development to focus on other projects.
### April 2014
> Hardware
Emanuele Caruso announces the [Stenoboard](http://www.stenoboard.com/), an open source stenographic split 3D-printed keyboard.
### Summer 2015
> Plover
Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
### August 2015
> Plover
Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
### September 2015
> Plover
Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
### December 2015
> Hardware
Scott Urueta announces and starts selling the [SOFT/HRUF](https://softhruf.love), an open source 3D-printed steno machine with light linear mechanical switches.
### March 2016
> Plover
"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.
> Education
[Steno Arcade](http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html) crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
### April 2016
> Plover
Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
### September 2016
> Hardware
Charley Shattuck starts to sell his customizable steno machine, the [Stenomod](https://stenomod.blogspot.ca/). The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
### October 2016
> Education
Josh Grams introduces JavaScript-based drilling website [Steno Jig](https://joshuagrams.github.io/steno-jig/).
### November 2016
> Plover
Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
### The future - 2017 and onwards
Don't worry, Plover development continues. You can see the [issues and feature requests on GitHub](https://github.com/openstenoproject/plover/issues), join in the developer discussions by joining the [Plover #devtalk forum](https://discordapp.com/channels/136953735426473984/144999734254370816), and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
### January 2019
> Hardware
Jane from [gBoards](https://www.gboards.ca/) begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
### February 2021
> Hardware
Peter from [StenoKeyboards](https://stenokeyboards.com/) starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
### April 2021
> Hardware
Nathan and Lenno from [Nolltronics](https://nolltronics.com/) releases the EcoSteno and starts to sell them.
### July 2021
> Plover
Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
</markdown>
[[Category:Plover]]
f07c38874c7b12caa1af9469138a93d90c734b2e
Troubleshooting issues
0
14
59
2024-02-05T16:01:34Z
Rice
1
Created page with "<markdown> Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution. Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues. -------------------- <!-- TOC --> - [Running in Debug Mode](#running-in-debug-mode) - [Issues](#issues) - [General](#general) - [Plover does not recognize my USB keyboard or..."
wikitext
text/x-wiki
<markdown>
Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues.
--------------------
<!-- TOC -->
- [Running in Debug Mode](#running-in-debug-mode)
- [Issues](#issues)
- [General](#general)
- [Plover does not recognize my USB keyboard or steno machine](#plover-does-not-recognize-my-usb-keyboard-or-steno-machine)
- [Strokes no longer appear when using keyboard](#strokes-no-longer-appear-when-using-keyboard)
- [When using TX Bolt, any chord with `SW-` in it doesn't come out right](#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right)
- [Plugins Manager](#plugins-manager)
- [Dictionary issues](#dictionary-issues)
- [Dictionary priority](#dictionary-priority)
- [If you have your own dictionary already](#if-you-have-your-own-dictionary-already)
- [About the default dictionaries](#about-the-default-dictionaries)
- [main.json](#mainjson)
- [commands.json](#commandsjson)
- [user.json](#userjson)
- [Windows](#windows-1)
- [Unrecognized keystrokes and other strange behavior](#unrecognized-keystrokes-and-other-strange-behavior)
- [No output](#no-output)
- [macOS](#macos)
- [Plover does not run (macOS)](#plover-does-not-run-macos)
- [Unrecognized keystrokes](#unrecognized-keystrokes)
- [Linux](#linux)
- [Unrecognized keystrokes](#unrecognized-keystrokes-1)
- [Linux dynamic keyboard layout switching is not working](#linux-dynamic-keyboard-layout-switching-is-not-working)
- [Delayed/slow output when using gnome-shell and the keyboard machine](#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine)
<!-- /TOC -->
# Running in Debug Mode
Follow instructions in [Invoke Plover from the command line](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line). You need to invoke the command
```
plover --log-level debug
```
In particular, the exact commands are
* `plover_console.exe --log-level debug` for Windows
* `/Applications/Plover.app/Contents/MacOS/Plover --log-level debug` for macOS
* `./plover.AppImage --log-level debug` for Linux (AppImage)
# Issues
## General
### Plover does not recognize my USB keyboard or steno machine
> **Note**: Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. See the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) for configuration instructions specific to your machine.
If you know your machine has been configured correctly, and Plover doesn't recognize your keyboard or steno machine:
1. Confirm your keyboard or steno machine is plugged into your computer.
1. On the Plover control panel, check if it states the machine is connected or disconnected.
* If it states the machine is disconnected, press the Reconnect button (this is to the right of "connected" or "disconnected" message).
1. If Plover still doesn't recognize your machine, try closing and relaunching Plover.
### Strokes no longer appear when using keyboard
If Plover is enabled with [arpeggiating](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate) and strokes were previously registered, check that arpeggiating has not begun. Press `<space>` (by default) to toggle arpeggiate.
### When using TX Bolt, any chord with `SW-` in it doesn't come out right
Solution: in the serial settings, uncheck "Xon/Xoff" under "Flow control". This will solve the issue where using S and W in a chord causes Plover to ignore those keys.
## Plugins Manager
If you're running Plover 4.x and are missing the plugins manager or it's not working as expected, you can try [manually installing plugins](https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins)
## Dictionary issues
By default, Plover ships with three dictionaries: `main.json`, `commands.json` and `user.json`. This can be a source of confusion to new users.
### Dictionary priority
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the `user.json` dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.
### If you have your own dictionary already
If you have your own dictionary already, you'll probably want to remove `main.json` and `custom.json` and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through `commands.json`, and remap strokes that you want to use in your own theory.
## About the default dictionaries
### main.json
`main.json` is the core default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
### commands.json
`commands.json` contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: `TKUPT`. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
### user.json
`user.json` is a blank dictionary. By default, the `user.json` dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
## Windows
### Unrecognized keystrokes and other strange behavior
* Disable AutoKey if you're getting strange behavior with Plover.
### No Output
Double check the following:
- Your machine is connected
- Plover's output is set to "Enabled"
- You can see strokes in the paper tape
If nothing is "typed" when you're focused in a program like "Notepad", something may be interfering with Plover's ability to send keystrokes.
You can try:
- Running Plover as an Administrator
- If you are a Citrix user, reinstall Citrix and make sure to opt-out of [app protection](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html)
## macOS
### Plover does not run
* If you use a keyboard instead of a steno machine, Plover needs [Assistive Device Permissions](https://support.apple.com/en-ca/guide/mac-help/mh43185/mac).
* If Plover does not have the permission, you'll see this error message
> Exception: Enable access for assistive devices.
* From the Catalina version of macOS, you may need to enable both the `Plover` app and the `env` app under Security & Privacy > Privacy > Accessibility.
Alternatively, upgrade Plover to a newer version. See [issue 1134](https://github.com/openstenoproject/plover/issues/1134) for more details.
* If Plover is shown to have Accessibility permissions but it still won't output anything/shows the error message above, there may be something wrong with the permissions.
(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)
There are several ways you can try to fix them, from least destructive to most destructive:
1. Removing Plover from the list of Accessibility permissions using the little `-` button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.
2. Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:
```
sudo tccutil reset Accessibility
```
Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.
3. Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.
```
sudo tccutil reset All
```
4. Alternatively, as a debugging step, [invoke Plover in the terminal](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line) with the command
```
/Applications/Plover.app/Contents/MacOS/Plover
```
then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)
* Plover will not work if you are using [Karabiner Elements](https://github.com/tekezo/Karabiner-Elements), or generally speaking any program that allow customizing the keyboard might interfere with Plover.
### Unrecognized keystrokes
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as `TO/FPLT` producing `t.` instead of `to.` To disable this, follow the instructions in this article: ["How to Disable the Character Accent Menu in OS X Mountain Lion"](https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/).
## Linux
### Missing or jumbled output
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (`HAT` becomes `AHT` or `AT`).
### Linux dynamic keyboard layout switching is not working
* Plover does not handle dynamic keyboard layout switching: see [bug #298](https://github.com/openstenoproject/plover/issues/298).
### Delayed/slow output when using gnome-shell and the keyboard machine
* It's a gnome-shell [bug](https://github.com/openstenoproject/plover/issues/1030), unfortunately there's no known workaround.
</markdown>
c57298ee54a0f899ccb31e943be0eb2b81a24d97
85
59
2024-02-05T18:02:31Z
Rice
1
wikitext
text/x-wiki
<markdown>
Some common problems and solutions are recorded here. If you're having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [Plover bug tracker](https://github.com/openstenoproject/plover/issues) for known reported issues.
--------------------
<!-- TOC -->
- [Running in Debug Mode](#running-in-debug-mode)
- [Issues](#issues)
- [General](#general)
- [Plover does not recognize my USB keyboard or steno machine](#plover-does-not-recognize-my-usb-keyboard-or-steno-machine)
- [Strokes no longer appear when using keyboard](#strokes-no-longer-appear-when-using-keyboard)
- [When using TX Bolt, any chord with `SW-` in it doesn't come out right](#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right)
- [Plugins Manager](#plugins-manager)
- [Dictionary issues](#dictionary-issues)
- [Dictionary priority](#dictionary-priority)
- [If you have your own dictionary already](#if-you-have-your-own-dictionary-already)
- [About the default dictionaries](#about-the-default-dictionaries)
- [main.json](#mainjson)
- [commands.json](#commandsjson)
- [user.json](#userjson)
- [Windows](#windows-1)
- [Unrecognized keystrokes and other strange behavior](#unrecognized-keystrokes-and-other-strange-behavior)
- [No output](#no-output)
- [macOS](#macos)
- [Plover does not run (macOS)](#plover-does-not-run-macos)
- [Unrecognized keystrokes](#unrecognized-keystrokes)
- [Linux](#linux)
- [Unrecognized keystrokes](#unrecognized-keystrokes-1)
- [Linux dynamic keyboard layout switching is not working](#linux-dynamic-keyboard-layout-switching-is-not-working)
- [Delayed/slow output when using gnome-shell and the keyboard machine](#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine)
<!-- /TOC -->
# Running in Debug Mode
Follow instructions in [Invoke Plover from the command line](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line). You need to invoke the command
```
plover --log-level debug
```
In particular, the exact commands are
* `plover_console.exe --log-level debug` for Windows
* `/Applications/Plover.app/Contents/MacOS/Plover --log-level debug` for macOS
* `./plover.AppImage --log-level debug` for Linux (AppImage)
# Issues
## General
### Plover does not recognize my USB keyboard or steno machine
> **Note**: Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. See the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) for configuration instructions specific to your machine.
If you know your machine has been configured correctly, and Plover doesn't recognize your keyboard or steno machine:
1. Confirm your keyboard or steno machine is plugged into your computer.
1. On the Plover control panel, check if it states the machine is connected or disconnected.
* If it states the machine is disconnected, press the Reconnect button (this is to the right of "connected" or "disconnected" message).
1. If Plover still doesn't recognize your machine, try closing and relaunching Plover.
### Strokes no longer appear when using keyboard
If Plover is enabled with [arpeggiating](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate) and strokes were previously registered, check that arpeggiating has not begun. Press `<space>` (by default) to toggle arpeggiate.
### When using TX Bolt, any chord with `SW-` in it doesn't come out right
Solution: in the serial settings, uncheck "Xon/Xoff" under "Flow control". This will solve the issue where using S and W in a chord causes Plover to ignore those keys.
## Plugins Manager
If you're running Plover 4.x and are missing the plugins manager or it's not working as expected, you can try [manually installing plugins](https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins)
## Dictionary issues
By default, Plover ships with three dictionaries: `main.json`, `commands.json` and `user.json`. This can be a source of confusion to new users.
### Dictionary priority
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the `user.json` dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.
### If you have your own dictionary already
If you have your own dictionary already, you'll probably want to remove `main.json` and `custom.json` and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the `commands.json` dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through `commands.json`, and remap strokes that you want to use in your own theory.
## About the default dictionaries
### main.json
`main.json` is the core default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
### commands.json
`commands.json` contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: `TKUPT`. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
### user.json
`user.json` is a blank dictionary. By default, the `user.json` dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
## Windows
### Unrecognized keystrokes and other strange behavior
* Disable AutoKey if you're getting strange behavior with Plover.
### No Output
Double check the following:
- Your machine is connected
- Plover's output is set to "Enabled"
- You can see strokes in the paper tape
If nothing is "typed" when you're focused in a program like "Notepad", something may be interfering with Plover's ability to send keystrokes.
You can try:
- Running Plover as an Administrator
- If you are a Citrix user, reinstall Citrix and make sure to opt-out of [app protection](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html)
## macOS
### Plover does not run
* If you use a keyboard instead of a steno machine, Plover needs [Assistive Device Permissions](https://support.apple.com/en-ca/guide/mac-help/mh43185/mac).
* If Plover does not have the permission, you'll see this error message
> Exception: Enable access for assistive devices.
* From the Catalina version of macOS, you may need to enable both the `Plover` app and the `env` app under Security & Privacy > Privacy > Accessibility.
Alternatively, upgrade Plover to a newer version. See [issue 1134](https://github.com/openstenoproject/plover/issues/1134) for more details.
* If Plover is shown to have Accessibility permissions but it still won't output anything/shows the error message above, there may be something wrong with the permissions.
(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)
There are several ways you can try to fix them, from least destructive to most destructive:
1. Removing Plover from the list of Accessibility permissions using the little `-` button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.
2. Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:
```
sudo tccutil reset Accessibility
```
Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.
3. Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.
```
sudo tccutil reset All
```
4. Alternatively, as a debugging step, [invoke Plover in the terminal](https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line) with the command
```
/Applications/Plover.app/Contents/MacOS/Plover
```
then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)
* Plover will not work if you are using [Karabiner Elements](https://github.com/tekezo/Karabiner-Elements), or generally speaking any program that allow customizing the keyboard might interfere with Plover.
### Unrecognized keystrokes
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as `TO/FPLT` producing `t.` instead of `to.` To disable this, follow the instructions in this article: ["How to Disable the Character Accent Menu in OS X Mountain Lion"](https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/).
## Linux
### Missing or jumbled output
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (`HAT` becomes `AHT` or `AT`).
### Linux dynamic keyboard layout switching is not working
* Plover does not handle dynamic keyboard layout switching: see [bug #298](https://github.com/openstenoproject/plover/issues/298).
### Delayed/slow output when using gnome-shell and the keyboard machine
* It's a gnome-shell [bug](https://github.com/openstenoproject/plover/issues/1030), unfortunately there's no known workaround.
</markdown>
[[Category:Plover]]
a4bc0ddbda85abb8cee38a7d2a0db01359bf01ee
FAQ
0
15
60
2024-02-05T16:02:10Z
Rice
1
Created page with "<markdown> **Table of Contents** - [Plover](#plover) - [What is stenography?](#what-is-stenography) - [How fast can stenographers write?](#how-fast-can-stenographers-write) - [What is Plover?](#what-is-plover) - [Why "Plover"?](#why-plover) - [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development) - [Why does Plover exist?](#why-does-plover-exist) - [How does Stenography compare to typing?](#how-does-stenography-compare-to-..."
wikitext
text/x-wiki
<markdown>
**Table of Contents**
- [Plover](#plover)
- [What is stenography?](#what-is-stenography)
- [How fast can stenographers write?](#how-fast-can-stenographers-write)
- [What is Plover?](#what-is-plover)
- [Why "Plover"?](#why-plover)
- [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development)
- [Why does Plover exist?](#why-does-plover-exist)
- [How does Stenography compare to typing?](#how-does-stenography-compare-to-typing)
- [What does using Plover look like?](#what-does-using-plover-look-like)
- [How does it compare to alternative layouts like Dvorak and Colemak?](#how-does-it-compare-to-alternative-layouts-like-dvorak-and-colemak)
- [If I learn steno, will it make using QWERTY harder?](#if-i-learn-steno-will-it-make-using-qwerty-harder)
- [Why isn't steno more popular than QWERTY?](#why-isnt-steno-more-popular-than-qwerty)
- [Will stenography be replaced with automatic voice recognition?](#will-stenography-be-replaced-with-automatic-voice-recognition)
- [What theory is Plover's default dictionary based on?](#what-theory-is-plovers-default-dictionary-based-on)
- [Where can I find other people who use Plover?](#where-can-i-find-other-people-who-use-plover)
- [How can I help?](#how-can-i-help)
- [Using Plover](#using-plover)
- [How can I get started?](#how-can-i-get-started)
- [What hardware do I need?](#what-hardware-do-i-need)
- [Can I still get by without a professional machine?](#can-i-still-get-by-without-a-professional-machine)
- [Can I use Plover for normal computer use?](#can-i-use-plover-for-normal-computer-use)
- [Can I use Plover for programming?](#can-i-use-plover-for-programming)
- [Can I use Plover for languages other than English?](#can-i-use-plover-for-languages-other-than-english)
- [How long does it take to learn?](#how-long-does-it-take-to-learn)
- [What's a brief/stroke/arpeggiating/etc.?](#whats-a-briefstrokearpeggiatingetc)
- [What can't Plover do?](#what-cant-plover-do)
- [Comparisons to professional stenography](#comparisons-to-professional-stenography)
- [Why does steno need amateurs?](#why-does-steno-need-amateurs)
- [What is Steno Arcade?](#what-is-steno-arcade)
- [Is Steno Arcade going to put steno schools out of business?](#is-steno-arcade-going-to-put-steno-schools-out-of-business)
- [How is Plover different from commercial steno programs?](#how-is-plover-different-from-commercial-steno-programs)
- [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business)
- [What are some features in Plover not commonly found in most CAT software?](#what-are-some-features-in-plover-not-commonly-found-in-most-cat-software)
- [Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?](#can-i-use-my-luminexstenturalightspeedother-stenotype-machine)
- [Can I use my dictionaries from another program?](#can-i-use-my-dictionaries-from-another-program)
## Plover
### What is stenography?
*Stan's Quick and Dirty: How Stenography Works*<br>
[](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")<br>
[(click to view video — 3:13)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")
[Stenography](https://en.wikipedia.org/wiki/Shorthand) is a form of shorthand writing/typing, usually done on a [special machine](https://en.wikipedia.org/wiki/Stenotype) (although with Plover, you can use computer keyboard that has [n-key rollover](https://en.wikipedia.org/wiki/Rollover_(key))). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
### How fast can stenographers write?
| Method | Typical Speed |
| ----------|-----------|
| Handwriting | 30 WPM |
| Average Typist | [40 WPM](https://www.youtube.com/watch?v=P5Ml_y5-KmI&list=PLFCCB3E328121B261) |
| Fast Typist | [120 WPM](https://www.youtube.com/watch?v=k71XmfDM1dU) |
| Typing World Record | [200 WPM](https://www.youtube.com/watch?v=FgjivmUE9o8) |
| Voice Writer | 180 WPM |
| Average Speech | 200 WPM |
| Amateur Stenographer | [160 WPM](https://www.youtube.com/watch?v=a9hVQ5BT1ls) |
| Professional Stenographer | [225 WPM](https://www.youtube.com/watch?v=UNmqwUEEJA4) |
| [Steno World Record](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)) | 360 WPM |
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [How long does it take to learn?](#how-long-does-it-take-to-learn))
### What is Plover?
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover).
### Why "Plover"?
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [here](http://plover.stenoknight.com/2010/03/why-plover.html).
### Who's responsible for Plover's development?
Plover was originally created by [Mirabai Knight](http://www.blogger.com/profile/16494847224950297255) and [Joshua
Harlan Lifton](http://launchpad.net/~joshua-harlan-lifton), and is the software arm of [The Open Steno Project](http://openstenoproject.org/), an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
### Why does Plover exist?
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [Mirabai Knight](http://StenoKnight.com) to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER,
Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [Dvorak](http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) or [Colemak](http://en.wikipedia.org/wiki/Keyboard_layout#Colemak)), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
1. Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
1. Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
### How does Stenography compare to typing?
- Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [Chopin's Fantasie Impromptu](https://www.youtube.com/watch?v=tvm2ZsRv3C8).
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
- Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.
> "When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
>
> — [Learn Plover!](https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys)
Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [Rachmaninoff's Prelude in G Minor](https://www.youtube.com/watch?v=4QB7ugJnHgs).
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
### What does using Plover look like?
| **QWERTY versus Stenography on Steno Arcade** | **Plover wins the race!** | **Demonstration of Plover with Qwerty Keyboard** |
| - | - | - |
| [](https://youtu.be/UtQzTUEuPWo?t=8s)<br>[(click to view video — 3:25)](https://youtu.be/UtQzTUEuPWo?t=8s) | [](https://www.youtube.com/watch?v=jkUyg_uoidY)<br>[(click to view video — 0:30)](https://www.youtube.com/watch?v=jkUyg_uoidY) | [](https://www.youtube.com/watch?v=JXQQzW99cAI)<br>[(click to view video — 1:05)](https://www.youtube.com/watch?v=JXQQzW99cAI) |
| **Realtime Text to Speech with Plover** | **Coding in Stenography, Quick Demo** | **Rails 7: The Steno Demo** |
| [](https://www.youtube.com/watch?v=K3MYFT6VZk8)<br>[(click to view video — 3:36)](https://www.youtube.com/watch?v=K3MYFT6VZk8) | [](https://www.youtube.com/watch?v=RBBiri3CD6w)<br>[(click to view video — 2:00)](https://www.youtube.com/watch?v=RBBiri3CD6w)| [](https://www.youtube.com/watch?v=q7g0ml60LGY)<br>[(click to view video — 2:08:59)](https://www.youtube.com/watch?v=q7g0ml60LGY)|
### How does it compare to alternative layouts like Dvorak and Colemak?
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the [world record is 360wpm](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)). Audiobooks are narrated at around 150wpm ([source from an Audible/iTunes book provider](https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be)). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [ Mirabai's article on the ergonomic argument for stenography](http://plover.stenoknight.com/2010/05/ergonomic-argument.html). There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
### If I learn steno, will it make using QWERTY harder?
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [Plover discord](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), people don't seem to experience this with steno and QWERTY in the same way. This could be because:
- Chorded input is very different from typing, so the muscle memory doesn't interfere as much
- Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
### Why isn't steno more popular than QWERTY?
There are a number of possible reasons:
1. Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
1. The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
1. It takes longer to learn how to write with steno than it does learning how to type. (See [How long does it take to learn?](#how-long-does-it-take-to-learn))
1. Plover software, and [suitable low cost hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware), didn't exist [until recently](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline).
### Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done [a presentation](https://www.youtube.com/watch?v=XKe1O7ppyqQ) on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
### What theory is Plover's default dictionary based on?
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
### Where can I find other people who use Plover?
Check out these [links to the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community).
### How can I help?
The Open Steno Project is run by volunteers.
You can help by:
- [Contributing code](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code)
- [Reporting issues](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues)
- [Editing this wiki](https://github.com/openstenoproject/plover/wiki)
- [Getting involved in the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community)
- [Donating money](https://www.openstenoproject.org/donate/)
- Telling people about Open Steno, Plover, and stenography!
## Using Plover
### How can I get started?
The [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover) has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
### What hardware do I need?
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
- [NKRO](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#whats-nkro), so you don't have to [arpeggiate](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate).
- No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [adapt a keyboard](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#adapt-a-keyboard-for-steno-use) to work better for steno.
- Lighter keys, so it's less fatiguing.
[Find more information in this section of the beginner's guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#connect-a-compatible-keyboard-or-stenography-machine), or in the [keyboards section of the hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keyboards).
### Can I still get by without a professional machine?
Yes, Mirabai Knight wrote in [her review of the Georgi](http://plover.stenoknight.com/2019/12/georgi-review.html) that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [hobbyist steno machines](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#commercially-available-hobbyist-machines).
This isn't to say that professional machines do not have some benefits:
- They do not require a computer, instead they can store text on the machine
- The pressure and sensitivity can be adjusted on the fly and per key
- The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[Thomas Baart's post "Exploring Professional Stenotype Machines"](https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/) goes into more of the features that professional machines have.
### Can I use Plover for normal computer use?
Yes! Plover can send nearly every keyboard key or combination you like. See the [dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#keyboard-shortcuts) for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [pull request](https://github.com/openstenoproject/plover/pull/1278) for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
- [Emily Symbols](https://github.com/EPLHREU/emily-symbols), for typing symbols (including those not in the main Plover dictionary)
- [Emily Modifiers](https://github.com/EPLHREU/emily-modifiers), for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
- [Abby's Left Hand Modifiers](https://github.com/4hrue2kd83f/abby-left-hand-modifiers), for typing with modifiers but keeping the right hand free
- [Plover Emoji](https://github.com/morinted/plover_emoji), for typing emoji
### Can I use Plover for programming?
Yes, and many people do!
For example:
- The author of [Art of Chording](https://www.artofchording.com/) (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [Coding in Stenography, Quick Demo](https://www.youtube.com/watch?v=RBBiri3CD6w), [Raw unedited steno coding demo](https://www.youtube.com/watch?v=711T2simRyI)
- [Paul Fioravanti](https://www.paulfioravanti.com/) recreated DHH's rails 7 demo using steno: [Rails 7: The Steno Demo](https://www.youtube.com/watch?v=q7g0ml60LGY)
- Mirabai Knight, who started Plover, has a [demo of her transcribing some of Plover's python source code](https://www.youtube.com/watch?v=jRFKZGWrmrM)
To make programming easier with steno:
- For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
- Specific dictionaries
- [Emily Symbols](https://github.com/EPLHREU/emily-symbols) for writing symbols.
- Dictionary collections which include some programming related dictionaries
- [stenodict](https://www.openstenoproject.org/stenodict/) a user-submitted collection of dictionaries
- [Di's steno dictionaries](https://github.com/didoesdigital/steno-dictionaries), the creator of Typey Type (and whose programming dictionaries can be [practiced on the site](https://didoesdigital.com/typey-type/lessons#tech))
- [Emily's dictionaries](https://github.com/EPLHREU/emily-dictionaries)
- [Antistic's dictionaries](https://github.com/antistic/steno-dictionaries)
- [Paul's dictionaries](https://github.com/paulfioravanti/steno-dictionaries)
- [Josiah's dictionaries](https://github.com/Josiah-tan/plover_dict)
- For writing in snake/camel/pascal/etc. case: You can set [typing modes](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#modes), [control capitalisation](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#capitalizing), or type symbols like `_`. There are also various plugins (see a list [here](https://github.com/openstenoproject/plover/discussions/1355)) which lets you do this retroactively.
- Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question ["Can I use Plover for normal computer use?"](#can-i-use-plover-for-normal-computer-use) above.
### Can I use Plover for languages other than English?
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [chorded systems](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages) that have been made.
If you want to fingerspell with non-English letters, JorWat has a [fingerspelling dictionary for diacritics](https://github.com/JorWat25/dictionaries/blob/main/diacritics.json) (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the [discord server](https://discord.gg/0lQde43a6dGmAMp2) is likely the best place to seek support for other languages.
### How long does it take to learn?
You can see the [2021 community survey results](https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics) to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [youtube video showing his progress over 5 months](https://www.youtube.com/watch?v=28v3cm21uAA), where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
### What's a brief/stroke/arpeggiating/etc.?
You can find a list of commonly used terms in the [glossary](https://github.com/openstenoproject/plover/wiki/Glossary).
### What can't Plover do?
For general information on what Plover cannot do, see the [open feature requests](https://github.com/openstenoproject/plover/issues?q=is%3Aissue+is%3Aopen+label%3Afeature-request). If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
- Sticky Metakeys (issue [#72](https://github.com/openstenoproject/plover/issues/72))
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as `Control-C`), but you can't map a stroke to, say, `Control` and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
- Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business).
## Comparisons to professional stenography
### Why does steno need amateurs?
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
### What is Steno Arcade?
[](http://store.steampowered.com/app/449000/)
[Steno Arcade](http://store.steampowered.com/app/449000/) is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
#### Is Steno Arcade going to put steno schools out of business?
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
### How is Plover different from commercial steno programs?
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
### Is Plover going to put CAT software companies out of business?
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
### What are some features in Plover not commonly found in most CAT software?
1. Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
1. Plover runs on Windows, Mac, and Linux.
1. Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant
delivery of text with no buffer flushing or time delay.
1. Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
1. And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you
know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<br>
[](https://youtu.be/eSU5JlVXT1A "Plover Dictionary Update Demo")<br>
[(click to view video — 1:44)](https://youtu.be/eSU5JlVXT1A)
### Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?
Yes! See the [stenotype machine section in supported hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#stenotype-machines) for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
### Can I use my dictionaries from another program?
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
</markdown>
ced8edeb0318e3ad123eb0232793003cacc44b1f
86
60
2024-02-05T18:04:23Z
Rice
1
wikitext
text/x-wiki
<markdown>
**Table of Contents**
- [Plover](#plover)
- [What is stenography?](#what-is-stenography)
- [How fast can stenographers write?](#how-fast-can-stenographers-write)
- [What is Plover?](#what-is-plover)
- [Why "Plover"?](#why-plover)
- [Who's responsible for Plover's development?](#whos-responsible-for-plovers-development)
- [Why does Plover exist?](#why-does-plover-exist)
- [How does Stenography compare to typing?](#how-does-stenography-compare-to-typing)
- [What does using Plover look like?](#what-does-using-plover-look-like)
- [How does it compare to alternative layouts like Dvorak and Colemak?](#how-does-it-compare-to-alternative-layouts-like-dvorak-and-colemak)
- [If I learn steno, will it make using QWERTY harder?](#if-i-learn-steno-will-it-make-using-qwerty-harder)
- [Why isn't steno more popular than QWERTY?](#why-isnt-steno-more-popular-than-qwerty)
- [Will stenography be replaced with automatic voice recognition?](#will-stenography-be-replaced-with-automatic-voice-recognition)
- [What theory is Plover's default dictionary based on?](#what-theory-is-plovers-default-dictionary-based-on)
- [Where can I find other people who use Plover?](#where-can-i-find-other-people-who-use-plover)
- [How can I help?](#how-can-i-help)
- [Using Plover](#using-plover)
- [How can I get started?](#how-can-i-get-started)
- [What hardware do I need?](#what-hardware-do-i-need)
- [Can I still get by without a professional machine?](#can-i-still-get-by-without-a-professional-machine)
- [Can I use Plover for normal computer use?](#can-i-use-plover-for-normal-computer-use)
- [Can I use Plover for programming?](#can-i-use-plover-for-programming)
- [Can I use Plover for languages other than English?](#can-i-use-plover-for-languages-other-than-english)
- [How long does it take to learn?](#how-long-does-it-take-to-learn)
- [What's a brief/stroke/arpeggiating/etc.?](#whats-a-briefstrokearpeggiatingetc)
- [What can't Plover do?](#what-cant-plover-do)
- [Comparisons to professional stenography](#comparisons-to-professional-stenography)
- [Why does steno need amateurs?](#why-does-steno-need-amateurs)
- [What is Steno Arcade?](#what-is-steno-arcade)
- [Is Steno Arcade going to put steno schools out of business?](#is-steno-arcade-going-to-put-steno-schools-out-of-business)
- [How is Plover different from commercial steno programs?](#how-is-plover-different-from-commercial-steno-programs)
- [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business)
- [What are some features in Plover not commonly found in most CAT software?](#what-are-some-features-in-plover-not-commonly-found-in-most-cat-software)
- [Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?](#can-i-use-my-luminexstenturalightspeedother-stenotype-machine)
- [Can I use my dictionaries from another program?](#can-i-use-my-dictionaries-from-another-program)
## Plover
### What is stenography?
*Stan's Quick and Dirty: How Stenography Works*<br>
[](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")<br>
[(click to view video — 3:13)](https://youtu.be/62l64Acfidc "Plover Dictionary Update Demo")
[Stenography](https://en.wikipedia.org/wiki/Shorthand) is a form of shorthand writing/typing, usually done on a [special machine](https://en.wikipedia.org/wiki/Stenotype) (although with Plover, you can use computer keyboard that has [n-key rollover](https://en.wikipedia.org/wiki/Rollover_(key))). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
### How fast can stenographers write?
| Method | Typical Speed |
| ----------|-----------|
| Handwriting | 30 WPM |
| Average Typist | [40 WPM](https://www.youtube.com/watch?v=P5Ml_y5-KmI&list=PLFCCB3E328121B261) |
| Fast Typist | [120 WPM](https://www.youtube.com/watch?v=k71XmfDM1dU) |
| Typing World Record | [200 WPM](https://www.youtube.com/watch?v=FgjivmUE9o8) |
| Voice Writer | 180 WPM |
| Average Speech | 200 WPM |
| Amateur Stenographer | [160 WPM](https://www.youtube.com/watch?v=a9hVQ5BT1ls) |
| Professional Stenographer | [225 WPM](https://www.youtube.com/watch?v=UNmqwUEEJA4) |
| [Steno World Record](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)) | 360 WPM |
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [How long does it take to learn?](#how-long-does-it-take-to-learn))
### What is Plover?
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover).
### Why "Plover"?
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [here](http://plover.stenoknight.com/2010/03/why-plover.html).
### Who's responsible for Plover's development?
Plover was originally created by [Mirabai Knight](http://www.blogger.com/profile/16494847224950297255) and [Joshua
Harlan Lifton](http://launchpad.net/~joshua-harlan-lifton), and is the software arm of [The Open Steno Project](http://openstenoproject.org/), an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
### Why does Plover exist?
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [Mirabai Knight](http://StenoKnight.com) to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER,
Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [Dvorak](http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) or [Colemak](http://en.wikipedia.org/wiki/Keyboard_layout#Colemak)), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
1. Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
1. Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
### How does Stenography compare to typing?
- Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [Chopin's Fantasie Impromptu](https://www.youtube.com/watch?v=tvm2ZsRv3C8).
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
- Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.
> "When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
>
> — [Learn Plover!](https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys)
Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [Rachmaninoff's Prelude in G Minor](https://www.youtube.com/watch?v=4QB7ugJnHgs).
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
### What does using Plover look like?
| **QWERTY versus Stenography on Steno Arcade** | **Plover wins the race!** | **Demonstration of Plover with Qwerty Keyboard** |
| - | - | - |
| [](https://youtu.be/UtQzTUEuPWo?t=8s)<br>[(click to view video — 3:25)](https://youtu.be/UtQzTUEuPWo?t=8s) | [](https://www.youtube.com/watch?v=jkUyg_uoidY)<br>[(click to view video — 0:30)](https://www.youtube.com/watch?v=jkUyg_uoidY) | [](https://www.youtube.com/watch?v=JXQQzW99cAI)<br>[(click to view video — 1:05)](https://www.youtube.com/watch?v=JXQQzW99cAI) |
| **Realtime Text to Speech with Plover** | **Coding in Stenography, Quick Demo** | **Rails 7: The Steno Demo** |
| [](https://www.youtube.com/watch?v=K3MYFT6VZk8)<br>[(click to view video — 3:36)](https://www.youtube.com/watch?v=K3MYFT6VZk8) | [](https://www.youtube.com/watch?v=RBBiri3CD6w)<br>[(click to view video — 2:00)](https://www.youtube.com/watch?v=RBBiri3CD6w)| [](https://www.youtube.com/watch?v=q7g0ml60LGY)<br>[(click to view video — 2:08:59)](https://www.youtube.com/watch?v=q7g0ml60LGY)|
### How does it compare to alternative layouts like Dvorak and Colemak?
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the [world record is 360wpm](https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing)). Audiobooks are narrated at around 150wpm ([source from an Audible/iTunes book provider](https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be)). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [ Mirabai's article on the ergonomic argument for stenography](http://plover.stenoknight.com/2010/05/ergonomic-argument.html). There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
### If I learn steno, will it make using QWERTY harder?
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [Plover discord](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), people don't seem to experience this with steno and QWERTY in the same way. This could be because:
- Chorded input is very different from typing, so the muscle memory doesn't interfere as much
- Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
### Why isn't steno more popular than QWERTY?
There are a number of possible reasons:
1. Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
1. The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
1. It takes longer to learn how to write with steno than it does learning how to type. (See [How long does it take to learn?](#how-long-does-it-take-to-learn))
1. Plover software, and [suitable low cost hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware), didn't exist [until recently](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline).
### Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done [a presentation](https://www.youtube.com/watch?v=XKe1O7ppyqQ) on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
### What theory is Plover's default dictionary based on?
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
### Where can I find other people who use Plover?
Check out these [links to the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community).
### How can I help?
The Open Steno Project is run by volunteers.
You can help by:
- [Contributing code](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code)
- [Reporting issues](https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues)
- [Editing this wiki](https://github.com/openstenoproject/plover/wiki)
- [Getting involved in the community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community)
- [Donating money](https://www.openstenoproject.org/donate/)
- Telling people about Open Steno, Plover, and stenography!
## Using Plover
### How can I get started?
The [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover) has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
### What hardware do I need?
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
- [NKRO](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#whats-nkro), so you don't have to [arpeggiate](https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate).
- No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [adapt a keyboard](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#adapt-a-keyboard-for-steno-use) to work better for steno.
- Lighter keys, so it's less fatiguing.
[Find more information in this section of the beginner's guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#connect-a-compatible-keyboard-or-stenography-machine), or in the [keyboards section of the hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keyboards).
### Can I still get by without a professional machine?
Yes, Mirabai Knight wrote in [her review of the Georgi](http://plover.stenoknight.com/2019/12/georgi-review.html) that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [hobbyist steno machines](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#commercially-available-hobbyist-machines).
This isn't to say that professional machines do not have some benefits:
- They do not require a computer, instead they can store text on the machine
- The pressure and sensitivity can be adjusted on the fly and per key
- The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[Thomas Baart's post "Exploring Professional Stenotype Machines"](https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/) goes into more of the features that professional machines have.
### Can I use Plover for normal computer use?
Yes! Plover can send nearly every keyboard key or combination you like. See the [dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#keyboard-shortcuts) for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [pull request](https://github.com/openstenoproject/plover/pull/1278) for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
- [Emily Symbols](https://github.com/EPLHREU/emily-symbols), for typing symbols (including those not in the main Plover dictionary)
- [Emily Modifiers](https://github.com/EPLHREU/emily-modifiers), for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
- [Abby's Left Hand Modifiers](https://github.com/4hrue2kd83f/abby-left-hand-modifiers), for typing with modifiers but keeping the right hand free
- [Plover Emoji](https://github.com/morinted/plover_emoji), for typing emoji
### Can I use Plover for programming?
Yes, and many people do!
For example:
- The author of [Art of Chording](https://www.artofchording.com/) (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [Coding in Stenography, Quick Demo](https://www.youtube.com/watch?v=RBBiri3CD6w), [Raw unedited steno coding demo](https://www.youtube.com/watch?v=711T2simRyI)
- [Paul Fioravanti](https://www.paulfioravanti.com/) recreated DHH's rails 7 demo using steno: [Rails 7: The Steno Demo](https://www.youtube.com/watch?v=q7g0ml60LGY)
- Mirabai Knight, who started Plover, has a [demo of her transcribing some of Plover's python source code](https://www.youtube.com/watch?v=jRFKZGWrmrM)
To make programming easier with steno:
- For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
- Specific dictionaries
- [Emily Symbols](https://github.com/EPLHREU/emily-symbols) for writing symbols.
- Dictionary collections which include some programming related dictionaries
- [stenodict](https://www.openstenoproject.org/stenodict/) a user-submitted collection of dictionaries
- [Di's steno dictionaries](https://github.com/didoesdigital/steno-dictionaries), the creator of Typey Type (and whose programming dictionaries can be [practiced on the site](https://didoesdigital.com/typey-type/lessons#tech))
- [Emily's dictionaries](https://github.com/EPLHREU/emily-dictionaries)
- [Antistic's dictionaries](https://github.com/antistic/steno-dictionaries)
- [Paul's dictionaries](https://github.com/paulfioravanti/steno-dictionaries)
- [Josiah's dictionaries](https://github.com/Josiah-tan/plover_dict)
- For writing in snake/camel/pascal/etc. case: You can set [typing modes](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#modes), [control capitalisation](https://github.com/openstenoproject/plover/wiki/Dictionary-Format#capitalizing), or type symbols like `_`. There are also various plugins (see a list [here](https://github.com/openstenoproject/plover/discussions/1355)) which lets you do this retroactively.
- Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question ["Can I use Plover for normal computer use?"](#can-i-use-plover-for-normal-computer-use) above.
### Can I use Plover for languages other than English?
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [chorded systems](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages) that have been made.
If you want to fingerspell with non-English letters, JorWat has a [fingerspelling dictionary for diacritics](https://github.com/JorWat25/dictionaries/blob/main/diacritics.json) (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the [discord server](https://discord.gg/0lQde43a6dGmAMp2) is likely the best place to seek support for other languages.
### How long does it take to learn?
You can see the [2021 community survey results](https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics) to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [youtube video showing his progress over 5 months](https://www.youtube.com/watch?v=28v3cm21uAA), where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
### What's a brief/stroke/arpeggiating/etc.?
You can find a list of commonly used terms in the [glossary](https://github.com/openstenoproject/plover/wiki/Glossary).
### What can't Plover do?
For general information on what Plover cannot do, see the [open feature requests](https://github.com/openstenoproject/plover/issues?q=is%3Aissue+is%3Aopen+label%3Afeature-request). If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
- Sticky Metakeys (issue [#72](https://github.com/openstenoproject/plover/issues/72))
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as `Control-C`), but you can't map a stroke to, say, `Control` and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
- Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [Is Plover going to put CAT software companies out of business?](#is-plover-going-to-put-cat-software-companies-out-of-business).
## Comparisons to professional stenography
### Why does steno need amateurs?
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
### What is Steno Arcade?
[](http://store.steampowered.com/app/449000/)
[Steno Arcade](http://store.steampowered.com/app/449000/) is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
#### Is Steno Arcade going to put steno schools out of business?
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
### How is Plover different from commercial steno programs?
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
### Is Plover going to put CAT software companies out of business?
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
### What are some features in Plover not commonly found in most CAT software?
1. Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
1. Plover runs on Windows, Mac, and Linux.
1. Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant
delivery of text with no buffer flushing or time delay.
1. Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
1. And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you
know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<br>
[](https://youtu.be/eSU5JlVXT1A "Plover Dictionary Update Demo")<br>
[(click to view video — 1:44)](https://youtu.be/eSU5JlVXT1A)
### Can I use my Luminex/Stentura/Lightspeed/other stenotype machine?
Yes! See the [stenotype machine section in supported hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#stenotype-machines) for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
### Can I use my dictionaries from another program?
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
</markdown>
[[Category:Stenography]]
6476d5e8d43963b1d883e084af475f2c120eb069
Glossary
0
16
61
2024-02-05T16:03:22Z
Rice
1
Created page with "<markdown> This glossary will help you with terms that you may come across in the steno community. **Table of Contents** - [Arpeggiate](#arpeggiate) - [Brief](#brief) - [Chord](#chord) - [Conflict](#conflict) - [Dragging](#dragging) - [JSON](#json) - [Mandatory](#mandatory) - [Misstroke](#misstroke) - [Outline](#outline) - [Philly Shift](#philly-shift) - [RTF/CRE](#rtfcre) - [Shadowing](#shadowing) - [Stacking](#stacking) - [Steno Dictionary](#steno-dictionary) - [Sten..."
wikitext
text/x-wiki
<markdown>
This glossary will help you with terms that you may come across in the steno community.
**Table of Contents**
- [Arpeggiate](#arpeggiate)
- [Brief](#brief)
- [Chord](#chord)
- [Conflict](#conflict)
- [Dragging](#dragging)
- [JSON](#json)
- [Mandatory](#mandatory)
- [Misstroke](#misstroke)
- [Outline](#outline)
- [Philly Shift](#philly-shift)
- [RTF/CRE](#rtfcre)
- [Shadowing](#shadowing)
- [Stacking](#stacking)
- [Steno Dictionary](#steno-dictionary)
- [Steno Order](#steno-order)
- [Stroke](#stroke)
- [Steno Theory](#steno-theory)
- [Suffix folding or tucking](#suffix-folding-or-tucking)
- [Untranslate](#untranslate)
- [Word Boundary](#word-boundary)
- [Write Out](#write-out)
- [Writing](#writing)
### Arpeggiate
A Plover feature enabling a standard keyboard to [stroke](#stroke) a [chord](#chord) by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is `<space>`. Press `<space>` to begin arpeggiating, then press the keys which make up the chord, and, finally, press `<space>` to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via `Configure > Machine` (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" width="40%">
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Cheat Sheets|Learning-Stenography#cheat-sheets]] for pictures of how keyboard keys correspond to steno keys.
### Brief
Also known as the "abbreviation", "short form", or "arbitrary". Briefs
are simply non-phonetic mappings of steno outlines to English words or
phrases. Common words and phrases are often briefed for the purpose of speed.
For instance, the phrase "from time to time" would regularly be written
out:
`FROM/TAOIM/TO/TAOIM` (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
`FRIMT` (reads: "frimt" and takes only one stroke)
### Chord
A group of keys representing a certain sound. For example, `TPH-` is a chord that represents the initial N sound.
### Conflict
1. traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
2. informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
### Dragging
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write `-F` but then drag your finger to the left, you might hit `*F` instead.
### JSON
JSON, in the context of stenography, is a dictionary format which maps steno
strokes to translations. You will often see strokes expressed in the JSON format,
such as `"SKP": "and"`.
### Mandatory
A typically arbitrary brief which is the only correct way to write the word. For example, `-T` is the only outline for _the_ in the default dictionary, with no written out outline.
### Misstroke
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke `TKPWAOD` (meaning `GAOD`) which translates to `good`. Sometimes the stenographer may miss a key, so they could have a misstroke entry `TKPAOD` which would also translate to `good`. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
### Outline
One or more strokes that translate to an affix, word, or phrase, such as `STPHOG/TPER`, one possible outline for _stenographer_.
### Philly Shift
Shifting the right hand one column to the right, typically in order to write the normally not possible `-TZ` and `-SD` chords.
### RTF/CRE
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for
"rich text format with court reporting extensions". It is a standard format that most
proprietary steno software can import from and export to. Plover can read RTF/CRE
natively.
### Shadowing
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
### Stacking
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write `is okay` with `S-/OBG` but end up with `SOBG → sock` because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, `"T-S": "{^s it}"`. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
### Steno Dictionary
Used by Plover or other stenotype software. Contains all the words and
the strokes that produce those words. While generally these are
constructed using a [[steno theory|Glossary#steno-theory]], this can be freely modified by the
stenographer. Dictionaries are a collection of entries, which map strokes to translation.
### Steno Order
The 22 keys on the steno machine has an explicit "order" that gets read out,
top-to-bottom, left to right. The entire steno layout is defined by `STKPWHRAO*EUFRPBLGTSDZ`.
### Stroke
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline `STPHOG/TPER` for _stenographer_ consists of two strokes, `STPHOG` and `TPER`.
### Steno Theory
A "system" or way of thinking that determines which steno strokes will
match to which words. Theories range generally from being based on
spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy").
The dictionary included with Plover uses a theory based on "NYCI theory",
which is descended from StenEd. It offers a hybrid between a brief-heavy and
stroke-heavy theory. It is recommended to start learning with Plover theory, and
you will likely learn what style you like and you can always switch later. Mirabai
uses the Plover dictionary professionally.
### Suffix folding or tucking
In some [steno theories](#steno-theory), when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as `SAOE/-G`, one may write `SAOEG` in one stroke. Sometimes this will break steno order. For example, when `EPBD/-G` is turned into `EPBGD`. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are `"-S": "{^s}"`, `"-D": "{^ed}"`, `"-G": "{^ing}"` and `"-R": "{^er}"`. A one-key prefix that's often folded in Plover's default theory as well is `"K-": "{con^}"` (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are `"-PLT": "{^ment}"`, `"-GS": "{^tion}"` and `"-BGS": "{^ction}"`.
### Untranslate
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. `KAT → cat`. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have `KAT`, Plover will simply output `KAT`.
### Word Boundary
The implicit spacing in between words. Spacing is inserted automatically
by Plover or other steno software. As words and phrases will often sound
similar to others, a stenographer needs to choose the stroke or brief
appropriate for the situation with the correct word boundary.
An illustration of a word boundary **error** is given by the phrase "cat log". If
a stenographer were to write "cat log" with Plover, by default, the system will
write "catalog". This happens because "cat log" isn't a very common word-pair
in English. The stenographer must explicitly write "cat (space) log".
But, there are many more common cases that are handled and the
stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; **`TPH`**/`HAOER` vs "insect"; **`EUPB`**/`SEBGT`
* "on top of"; **`OPB`**/`TOP`/`-F` vs "onto"; **`AUPN`**/`TO`
* "it is a live (wire)"; `T`/`S`/**`AEU`**/`HREUF` vs "it is alive"; `T`/`S`/**`A`**/`HREUF`
### Write Out
The opposite of a [brief](#brief) is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out `O/PEUPB/KWROPB` instead of using the brief `P-PB` for the word "opinion".
### Writing
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
</markdown>
9a00988461fb3c3506fa506af7c8390e4d900872
88
61
2024-02-05T18:05:51Z
Rice
1
wikitext
text/x-wiki
<markdown>
This glossary will help you with terms that you may come across in the steno community.
**Table of Contents**
- [Arpeggiate](#arpeggiate)
- [Brief](#brief)
- [Chord](#chord)
- [Conflict](#conflict)
- [Dragging](#dragging)
- [JSON](#json)
- [Mandatory](#mandatory)
- [Misstroke](#misstroke)
- [Outline](#outline)
- [Philly Shift](#philly-shift)
- [RTF/CRE](#rtfcre)
- [Shadowing](#shadowing)
- [Stacking](#stacking)
- [Steno Dictionary](#steno-dictionary)
- [Steno Order](#steno-order)
- [Stroke](#stroke)
- [Steno Theory](#steno-theory)
- [Suffix folding or tucking](#suffix-folding-or-tucking)
- [Untranslate](#untranslate)
- [Word Boundary](#word-boundary)
- [Write Out](#write-out)
- [Writing](#writing)
### Arpeggiate
A Plover feature enabling a standard keyboard to [stroke](#stroke) a [chord](#chord) by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is `<space>`. Press `<space>` to begin arpeggiating, then press the keys which make up the chord, and, finally, press `<space>` to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via `Configure > Machine` (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" width="40%">
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Cheat Sheets|Learning-Stenography#cheat-sheets]] for pictures of how keyboard keys correspond to steno keys.
### Brief
Also known as the "abbreviation", "short form", or "arbitrary". Briefs
are simply non-phonetic mappings of steno outlines to English words or
phrases. Common words and phrases are often briefed for the purpose of speed.
For instance, the phrase "from time to time" would regularly be written
out:
`FROM/TAOIM/TO/TAOIM` (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
`FRIMT` (reads: "frimt" and takes only one stroke)
### Chord
A group of keys representing a certain sound. For example, `TPH-` is a chord that represents the initial N sound.
### Conflict
1. traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
2. informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
### Dragging
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write `-F` but then drag your finger to the left, you might hit `*F` instead.
### JSON
JSON, in the context of stenography, is a dictionary format which maps steno
strokes to translations. You will often see strokes expressed in the JSON format,
such as `"SKP": "and"`.
### Mandatory
A typically arbitrary brief which is the only correct way to write the word. For example, `-T` is the only outline for _the_ in the default dictionary, with no written out outline.
### Misstroke
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke `TKPWAOD` (meaning `GAOD`) which translates to `good`. Sometimes the stenographer may miss a key, so they could have a misstroke entry `TKPAOD` which would also translate to `good`. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
### Outline
One or more strokes that translate to an affix, word, or phrase, such as `STPHOG/TPER`, one possible outline for _stenographer_.
### Philly Shift
Shifting the right hand one column to the right, typically in order to write the normally not possible `-TZ` and `-SD` chords.
### RTF/CRE
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for
"rich text format with court reporting extensions". It is a standard format that most
proprietary steno software can import from and export to. Plover can read RTF/CRE
natively.
### Shadowing
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
### Stacking
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write `is okay` with `S-/OBG` but end up with `SOBG → sock` because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, `"T-S": "{^s it}"`. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
### Steno Dictionary
Used by Plover or other stenotype software. Contains all the words and
the strokes that produce those words. While generally these are
constructed using a [[steno theory|Glossary#steno-theory]], this can be freely modified by the
stenographer. Dictionaries are a collection of entries, which map strokes to translation.
### Steno Order
The 22 keys on the steno machine has an explicit "order" that gets read out,
top-to-bottom, left to right. The entire steno layout is defined by `STKPWHRAO*EUFRPBLGTSDZ`.
### Stroke
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline `STPHOG/TPER` for _stenographer_ consists of two strokes, `STPHOG` and `TPER`.
### Steno Theory
A "system" or way of thinking that determines which steno strokes will
match to which words. Theories range generally from being based on
spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy").
The dictionary included with Plover uses a theory based on "NYCI theory",
which is descended from StenEd. It offers a hybrid between a brief-heavy and
stroke-heavy theory. It is recommended to start learning with Plover theory, and
you will likely learn what style you like and you can always switch later. Mirabai
uses the Plover dictionary professionally.
### Suffix folding or tucking
In some [steno theories](#steno-theory), when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as `SAOE/-G`, one may write `SAOEG` in one stroke. Sometimes this will break steno order. For example, when `EPBD/-G` is turned into `EPBGD`. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are `"-S": "{^s}"`, `"-D": "{^ed}"`, `"-G": "{^ing}"` and `"-R": "{^er}"`. A one-key prefix that's often folded in Plover's default theory as well is `"K-": "{con^}"` (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are `"-PLT": "{^ment}"`, `"-GS": "{^tion}"` and `"-BGS": "{^ction}"`.
### Untranslate
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. `KAT → cat`. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have `KAT`, Plover will simply output `KAT`.
### Word Boundary
The implicit spacing in between words. Spacing is inserted automatically
by Plover or other steno software. As words and phrases will often sound
similar to others, a stenographer needs to choose the stroke or brief
appropriate for the situation with the correct word boundary.
An illustration of a word boundary **error** is given by the phrase "cat log". If
a stenographer were to write "cat log" with Plover, by default, the system will
write "catalog". This happens because "cat log" isn't a very common word-pair
in English. The stenographer must explicitly write "cat (space) log".
But, there are many more common cases that are handled and the
stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; **`TPH`**/`HAOER` vs "insect"; **`EUPB`**/`SEBGT`
* "on top of"; **`OPB`**/`TOP`/`-F` vs "onto"; **`AUPN`**/`TO`
* "it is a live (wire)"; `T`/`S`/**`AEU`**/`HREUF` vs "it is alive"; `T`/`S`/**`A`**/`HREUF`
### Write Out
The opposite of a [brief](#brief) is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out `O/PEUPB/KWROPB` instead of using the brief `P-PB` for the word "opinion".
### Writing
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
</markdown>
[[Category:Stenography]]
32199d4282cda43a37f9532bbe0ae4634a524214
Learning stenography
0
17
62
2024-02-05T16:03:48Z
Rice
1
Created page with "<markdown> - [Suggested Learning Route](#suggested-learning-route) - [Textbooks](#textbooks) - [Glossary](#glossary) - [Tools](#tools) - [Plugins](#plugins) - [Practice writing using stenography](#practice-writing-using-stenography) - [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography) - [Dictation](#dictation) - [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription) - [Other Typing..."
wikitext
text/x-wiki
<markdown>
- [Suggested Learning Route](#suggested-learning-route)
- [Textbooks](#textbooks)
- [Glossary](#glossary)
- [Tools](#tools)
- [Plugins](#plugins)
- [Practice writing using stenography](#practice-writing-using-stenography)
- [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography)
- [Dictation](#dictation)
- [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription)
- [Other Typing Sites](#other-typing-sites)
- [Flashcards](#flashcards)
- [Cheat sheets](#cheat-sheets)
## Suggested Learning Route
> :warning: This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.
| Learning Level | Suggestion |
| - | - |
| Absolute Beginner | **Start reading a [textbook](#textbooks).** [The Art of Chording](https://www.artofchording.com/) seems to be more popular, but [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is more complete (covering punctuation and numbers as well).<br><br>**Join the [discord](https://discord.com/invite/0lQde43a6dGmAMp2)**. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.<br><br>**Read the [[Glossary]]**. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |
| Learning the Keyboard | [**Learn the Steno Keyboard on Steno Jig**](https://joshuagrams.github.io/steno-jig/learn-keyboard.html). It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [turn off the dictionaries](https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html) to use this. |
| Learning the keyboard (QWERTY) | **Download one of the keyboard [cheat sheets](#cheat-sheets)**. |
| Beginner vocabulary |**Practice writing with a [steno-focused tool](#practice-writing-using-stenography)**. Popular tools are [Typey Type](https://didoesdigital.com/typey-type/), [Steno Jig](https://joshuagrams.github.io/steno-jig/) and [Practice Plover](https://practiceplover.com/). <br><br>**Start using [flashcards](../wiki/Using-Anki-for-Learning-Stenography)**. Some people like using flashcards to practice vocabulary and identify problem words.<br><br>**Learn to use [tools](#tools) and [plugins](#plugins)**. These can help you discover how to write new words and briefs that may not come up in early lessons.<br><br>**Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]**. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |
| Intermediate vocabulary | **Practice on [other typing sites](#other-typing-sites)**. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.<br><br>**Start adding your own entries to the dictionary**. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |
| ~30wpm | **Start using stenography in your day-to-day writing.** Check out [this FAQ answer](https://github.com/openstenoproject/plover/wiki/Frequently-Asked-Questions#can-i-use-plover-for-normal-computer-use) for tips. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |
| ~50wpm | **Practice with [Steno Arcade](https://store.steampowered.com/app/449000/Steno_Arcade/), or other slow [dictation](#dictation)**. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to add your [own songs](https://timothyaveni.com/wavelyric/) which you may find easier). |
| ~100wpm | **Consider investing in steno [hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware)**. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |
## Textbooks
These sites aim to teach you steno theory, from the layout to the terminology to the strokes.
- [The Art of Chording](https://www.artofchording.com/)
_The Art of Chording_ is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
- [Learn Plover!](https://www.openstenoproject.org/learn-plover/) ([EPUB](https://isidore.co/calibre/get/EPUB/7784), [PDF](https://isidore.co/calibre/get/PDF/7784))
_Learn Plover!_ is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [Steno Jig](https://joshuagrams.github.io/steno-jig/learn-plover.html) and [Typey Type](https://didoesdigital.com/typey-type/lessons).
- [Lapwing for Beginners](https://github.com/aerickt/lapwing-for-beginners/wiki)
_Lapwing for Beginners_ is an online guide for Lapwing theory. It offers exercises to be completed with [Typey Type](https://didoesdigital.com/typey-type/lessons) and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization.
## Glossary
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
## Tools
Plover comes with a lot of [[built-in tools]] which are useful for learning, such as:
- Lookup. Write words here to see how you can write them.
- Stroke Suggestions. Suggests alternative ways of writing the words you write.
- Paper Tape. Shows which keys Plover thinks you're pressing.
## Plugins
Check out [[Plugins]] for how to install plugins.
Check out the [awesome-plover page list of plugins](https://github.com/openstenoproject/awesome-plover#plugins) for a longer list of awesome plugins.
Here are 3 community favourites.
- [Spectra Lexer](https://github.com/fourshade/spectra_lexer)
This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [web version](https://spectra.sammdot.ca/) and a bot in the [discord server](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
- [Plover-clippy](https://github.com/tckmn/plover_clippy) or [Plover-clippy-2](https://github.com/Josiah-tan/plover_clippy_2)
Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into `clippy_2.org` in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
<img width="500" alt="Screenshot of Plover's menu item, Open config folder, under File" src="https://user-images.githubusercontent.com/2476974/153804408-3e4be300-1139-4af4-b3bf-8414752fa7de.png">
- [Plover Word Tray](https://github.com/Kaoffie/plover_word_tray)
Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [lookup window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#lookup-tool) and [suggestions window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#stroke-suggestions) in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
## Practice writing using stenography
### Practice material and tools made for stenography
- [Typey Type for Stenographers](https://didoesdigital.com/typey-type/)
Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [Learn Plover!](https://www.openstenoproject.org/learn-plover/) book and lets you [upload your own practice material](https://didoesdigital.com/typey-type/lessons/custom/setup). It also has [dictionaries](https://didoesdigital.com/typey-type/dictionaries), [flashcards](https://didoesdigital.com/typey-type/flashcards), [recommendations](https://didoesdigital.com/typey-type/progress) on how much of which lesson to do next, a [break timer](https://didoesdigital.com/typey-type/break), a [lookup tool](https://didoesdigital.com/typey-type/lookup), and a [diagram generator](https://didoesdigital.com/typey-type/writer).
Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
- [Steno Jig](https://joshuagrams.github.io/steno-jig/)
Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [Learn Plover! drills](https://joshuagrams.github.io/steno-jig/learn-plover.html) with stroke hints and lookahead display.
- [Steno Grade](https://biffbish.github.io/steno-grade/)
Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
- [Practice Plover](https://practiceplover.com/)
Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
- [Qwerty Steno](http://qwertysteno.com/Home/)
Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
- [The Steno Grind](https://noahrayroberts.com/apps/the-steno-grind/)
The Steno Grind provides interactive drills for any combination of exercises from _The Art of Chording_.
- [Plover Dojo](http://ploverdojo.appspot.com/) (unavailable)
A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
- [Top 100 Words in Plover's Dictionary](https://github.com/openstenoproject/plover/wiki/Top-100-English-Words-in-Plover's-Dictionary)
A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
- [StenoCycle](https://www.stenoshortcake.com/)
Driving game - early prototype, but does let you drill your own words and phrases.
### Dictation
If you want to eventually caption speakers, you will need to be able to take dictation.
- [Steno Arcade](http://store.steampowered.com/app/449000/)
Steno Arcade is a project funded by the Open Steno Project, developed by [For All To Play](http://www.foralltoplay.com/). It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [wavelyric](http://timothyaveni.com/wavelyric/). The easiest song requires a speed of about 50 WPM.
- Television
Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
- Twitch and other streaming sites
Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
- [YouTube](https://youtube.com)
You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker.
You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
- [Platinum steno](https://www.youtube.com/c/PlatinumSteno/playlists)
Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [one on doing the theory courses after learning Plover theory](https://www.paulfioravanti.com/blog/going-platinum/), and [one more general post on using Plover with Q&A style dictation](https://www.paulfioravanti.com/blog/plover-for-the-record/).
- [Stenonymous's Resource Page](https://stenonymous.com/2017/08/12/resource-page/)
This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
- [StenoTube](http://stenotube.com/category/practice-dictation/)
A selection of dictations, though mostly at higher speeds.
- [Pitman London](http://www.pitmanlondon.co.uk/shorthandspeed/)
Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
- [IPS](https://the-ips.org.uk/examinations/dictation-practice/)
Dictations ranging from 100 WPM to 280 WPM.
- [Court Reporting Help](http://courtreportinghelp.com/)
CRH has some free dictation posts. Especially useful is the [Magic Drill](https://web.archive.org/web/20181107020646/http://courtreportinghelp.com:80/2016/01/02/magic-drills-free-audio-speed-drills/), for beginners and experts alike.
- [englishlearning.webgarden.es](http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts)
This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
- [www.stenolife.com](https://www.stenolife.com/index.php/site/dictation/index)
Many short pieces are available across a wide range of speeds. Making an account is required.
- [www.ev360ultimate.com](http://www.ev360ultimate.com/ev360u/moodle/login/index.php)
A repository with longer pieces and guided practice sessions. Making an account is required.
- Make your own: Christopher Day has an article on [How to Create Timed Dictation](https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/) and Josh Grams has a [tool for adding timing marks](http://joshgrams.com/2022/01/17/drillmaker.html) (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
### Volunteer Projects Needing Transcription
- [Library of Congress By the People Project](https://crowd.loc.gov/)
Volunteer project transcribing historical texts.
### Other Typing Sites
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
- [TypiNation](https://www.typination.com/)
Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
- [keyma.sh](https://keyma.sh)
Multiplayer typing website with a stenography world and public racing rooms.
- [monkeytype](https://monkeytype.com/) *Some steno users have reported having their scores not saved as they were detected as bot-like*
Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [Steno Jig](https://joshuagrams.github.io/steno-jig/form.html) as well).
You may want to change some settings for steno input to work well:
| setting name | setting | notes |
| --------------- | ------- | - |
| freedom mode | on | Allows you to delete any word, even if typed wrong |
| strict space | on | Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |
| stop on error | off | Allows you to write incorrect characters |
| confidence mode | off | Allow you to backspace |
| quick end | off | If on, means that the test will end as soon as the last word is is typed, even if incorrect |
| indicate typos | below/replace | Show typos |
- [ZType](https://zty.pe/)
Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
- [TypeRacer](http://typeracer.com) *Now bans steno users who show up in leaderboards, a sudden flip after years of steno users being allowed on the site*
Online realtime typing competition. Use the [steno universe](https://play.typeracer.com/?universe=steno) to avoid getting banned (but it does mean racing against fewer real people).
There is an input character limit which can get in the way when writing fast or writing phrases. You can install [this user script](https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit) to get around the limit ([instructions](https://greasyfork.org/en)).
- [10 Fast Fingers](https://10fastfingers.com/typing-test/english) *Bans steno users who break 100WPM*
Short test of most common words.
## Flashcards
You can use flashcards to help you memorise briefs, theory rules, phrases and more. See [Using Anki for Learning Stenography](https://github.com/openstenoproject/plover/wiki/Using-Anki-for-Learning-Stenography) for more details on how to get set up and community materials.
## Cheat sheets
Quick image and text references.
- QWERTY to steno layout
- [Steno board next to the QWERTY layout](https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png)
- Steno keys on top of a QWERTY keyboard
- [Full keyboard](http://i.imgur.com/qIh1iJ0.png)
- [Faded QWERTY](https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png)
- [Faded QWERTY, with finger positions](https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png)
- [Learn Plover! Cheat sheet](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet)
- [Chart with all the standard sounds in Plover on the steno board](https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit)
- [Which fingers to use for each key](https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit)
- [Steno order](https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit)
- Quick text references for:
- [Fingerspelling](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling)
- [Briefs](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs)
- [Prefix/Suffix strokes](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes)
- [Non-letters](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters)
- [Numbers](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers)
- [Steno Explained](https://steno.sammdot.ca/explainers)
- [Steno Terminology](https://steno.sammdot.ca/steno-terminology.png)
- [Plover Theory Basics](https://steno.sammdot.ca/plover-basics.png)
- [Numbers](https://steno.sammdot.ca/plover-numbers.png)
- [Fingerspelling](https://steno.sammdot.ca/plover-fingerspelling.png)
- charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [Steno Explained](https://steno.sammdot.ca/explainers)
</markdown>
2180ca97c7c12153d24a3d418c4117e4fa70d6d9
89
62
2024-02-05T18:06:07Z
Rice
1
wikitext
text/x-wiki
<markdown>
- [Suggested Learning Route](#suggested-learning-route)
- [Textbooks](#textbooks)
- [Glossary](#glossary)
- [Tools](#tools)
- [Plugins](#plugins)
- [Practice writing using stenography](#practice-writing-using-stenography)
- [Practice material and tools made for stenography](#practice-material-and-tools-made-for-stenography)
- [Dictation](#dictation)
- [Volunteer Projects Needing Transcription](#volunteer-projects-needing-transcription)
- [Other Typing Sites](#other-typing-sites)
- [Flashcards](#flashcards)
- [Cheat sheets](#cheat-sheets)
## Suggested Learning Route
> :warning: This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.
| Learning Level | Suggestion |
| - | - |
| Absolute Beginner | **Start reading a [textbook](#textbooks).** [The Art of Chording](https://www.artofchording.com/) seems to be more popular, but [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is more complete (covering punctuation and numbers as well).<br><br>**Join the [discord](https://discord.com/invite/0lQde43a6dGmAMp2)**. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.<br><br>**Read the [[Glossary]]**. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know. |
| Learning the Keyboard | [**Learn the Steno Keyboard on Steno Jig**](https://joshuagrams.github.io/steno-jig/learn-keyboard.html). It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [turn off the dictionaries](https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html) to use this. |
| Learning the keyboard (QWERTY) | **Download one of the keyboard [cheat sheets](#cheat-sheets)**. |
| Beginner vocabulary |**Practice writing with a [steno-focused tool](#practice-writing-using-stenography)**. Popular tools are [Typey Type](https://didoesdigital.com/typey-type/), [Steno Jig](https://joshuagrams.github.io/steno-jig/) and [Practice Plover](https://practiceplover.com/). <br><br>**Start using [flashcards](../wiki/Using-Anki-for-Learning-Stenography)**. Some people like using flashcards to practice vocabulary and identify problem words.<br><br>**Learn to use [tools](#tools) and [plugins](#plugins)**. These can help you discover how to write new words and briefs that may not come up in early lessons.<br><br>**Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]**. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other. |
| Intermediate vocabulary | **Practice on [other typing sites](#other-typing-sites)**. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.<br><br>**Start adding your own entries to the dictionary**. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often. |
| ~30wpm | **Start using stenography in your day-to-day writing.** Check out [this FAQ answer](https://github.com/openstenoproject/plover/wiki/Frequently-Asked-Questions#can-i-use-plover-for-normal-computer-use) for tips. (30wpm is roughly where people aren't frustrated with their speed, but this may vary). |
| ~50wpm | **Practice with [Steno Arcade](https://store.steampowered.com/app/449000/Steno_Arcade/), or other slow [dictation](#dictation)**. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to add your [own songs](https://timothyaveni.com/wavelyric/) which you may find easier). |
| ~100wpm | **Consider investing in steno [hardware](https://github.com/openstenoproject/plover/wiki/Supported-Hardware)**. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance. |
## Textbooks
These sites aim to teach you steno theory, from the layout to the terminology to the strokes.
- [The Art of Chording](https://www.artofchording.com/)
_The Art of Chording_ is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
- [Learn Plover!](https://www.openstenoproject.org/learn-plover/) ([EPUB](https://isidore.co/calibre/get/EPUB/7784), [PDF](https://isidore.co/calibre/get/PDF/7784))
_Learn Plover!_ is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [Steno Jig](https://joshuagrams.github.io/steno-jig/learn-plover.html) and [Typey Type](https://didoesdigital.com/typey-type/lessons).
- [Lapwing for Beginners](https://github.com/aerickt/lapwing-for-beginners/wiki)
_Lapwing for Beginners_ is an online guide for Lapwing theory. It offers exercises to be completed with [Typey Type](https://didoesdigital.com/typey-type/lessons) and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization.
## Glossary
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
## Tools
Plover comes with a lot of [[built-in tools]] which are useful for learning, such as:
- Lookup. Write words here to see how you can write them.
- Stroke Suggestions. Suggests alternative ways of writing the words you write.
- Paper Tape. Shows which keys Plover thinks you're pressing.
## Plugins
Check out [[Plugins]] for how to install plugins.
Check out the [awesome-plover page list of plugins](https://github.com/openstenoproject/awesome-plover#plugins) for a longer list of awesome plugins.
Here are 3 community favourites.
- [Spectra Lexer](https://github.com/fourshade/spectra_lexer)
This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [web version](https://spectra.sammdot.ca/) and a bot in the [discord server](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
- [Plover-clippy](https://github.com/tckmn/plover_clippy) or [Plover-clippy-2](https://github.com/Josiah-tan/plover_clippy_2)
Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into `clippy_2.org` in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
<img width="500" alt="Screenshot of Plover's menu item, Open config folder, under File" src="https://user-images.githubusercontent.com/2476974/153804408-3e4be300-1139-4af4-b3bf-8414752fa7de.png">
- [Plover Word Tray](https://github.com/Kaoffie/plover_word_tray)
Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [lookup window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#lookup-tool) and [suggestions window](https://github.com/openstenoproject/plover/wiki/Built-in-tools#stroke-suggestions) in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
## Practice writing using stenography
### Practice material and tools made for stenography
- [Typey Type for Stenographers](https://didoesdigital.com/typey-type/)
Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [Learn Plover!](https://www.openstenoproject.org/learn-plover/) book and lets you [upload your own practice material](https://didoesdigital.com/typey-type/lessons/custom/setup). It also has [dictionaries](https://didoesdigital.com/typey-type/dictionaries), [flashcards](https://didoesdigital.com/typey-type/flashcards), [recommendations](https://didoesdigital.com/typey-type/progress) on how much of which lesson to do next, a [break timer](https://didoesdigital.com/typey-type/break), a [lookup tool](https://didoesdigital.com/typey-type/lookup), and a [diagram generator](https://didoesdigital.com/typey-type/writer).
Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
- [Steno Jig](https://joshuagrams.github.io/steno-jig/)
Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [Learn Plover! drills](https://joshuagrams.github.io/steno-jig/learn-plover.html) with stroke hints and lookahead display.
- [Steno Grade](https://biffbish.github.io/steno-grade/)
Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
- [Practice Plover](https://practiceplover.com/)
Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
- [Qwerty Steno](http://qwertysteno.com/Home/)
Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
- [The Steno Grind](https://noahrayroberts.com/apps/the-steno-grind/)
The Steno Grind provides interactive drills for any combination of exercises from _The Art of Chording_.
- [Plover Dojo](http://ploverdojo.appspot.com/) (unavailable)
A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
- [Top 100 Words in Plover's Dictionary](https://github.com/openstenoproject/plover/wiki/Top-100-English-Words-in-Plover's-Dictionary)
A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
- [StenoCycle](https://www.stenoshortcake.com/)
Driving game - early prototype, but does let you drill your own words and phrases.
### Dictation
If you want to eventually caption speakers, you will need to be able to take dictation.
- [Steno Arcade](http://store.steampowered.com/app/449000/)
Steno Arcade is a project funded by the Open Steno Project, developed by [For All To Play](http://www.foralltoplay.com/). It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [wavelyric](http://timothyaveni.com/wavelyric/). The easiest song requires a speed of about 50 WPM.
- Television
Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
- Twitch and other streaming sites
Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
- [YouTube](https://youtube.com)
You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker.
You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
- [Platinum steno](https://www.youtube.com/c/PlatinumSteno/playlists)
Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [one on doing the theory courses after learning Plover theory](https://www.paulfioravanti.com/blog/going-platinum/), and [one more general post on using Plover with Q&A style dictation](https://www.paulfioravanti.com/blog/plover-for-the-record/).
- [Stenonymous's Resource Page](https://stenonymous.com/2017/08/12/resource-page/)
This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
- [StenoTube](http://stenotube.com/category/practice-dictation/)
A selection of dictations, though mostly at higher speeds.
- [Pitman London](http://www.pitmanlondon.co.uk/shorthandspeed/)
Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
- [IPS](https://the-ips.org.uk/examinations/dictation-practice/)
Dictations ranging from 100 WPM to 280 WPM.
- [Court Reporting Help](http://courtreportinghelp.com/)
CRH has some free dictation posts. Especially useful is the [Magic Drill](https://web.archive.org/web/20181107020646/http://courtreportinghelp.com:80/2016/01/02/magic-drills-free-audio-speed-drills/), for beginners and experts alike.
- [englishlearning.webgarden.es](http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts)
This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
- [www.stenolife.com](https://www.stenolife.com/index.php/site/dictation/index)
Many short pieces are available across a wide range of speeds. Making an account is required.
- [www.ev360ultimate.com](http://www.ev360ultimate.com/ev360u/moodle/login/index.php)
A repository with longer pieces and guided practice sessions. Making an account is required.
- Make your own: Christopher Day has an article on [How to Create Timed Dictation](https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/) and Josh Grams has a [tool for adding timing marks](http://joshgrams.com/2022/01/17/drillmaker.html) (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
### Volunteer Projects Needing Transcription
- [Library of Congress By the People Project](https://crowd.loc.gov/)
Volunteer project transcribing historical texts.
### Other Typing Sites
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
- [TypiNation](https://www.typination.com/)
Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
- [keyma.sh](https://keyma.sh)
Multiplayer typing website with a stenography world and public racing rooms.
- [monkeytype](https://monkeytype.com/) *Some steno users have reported having their scores not saved as they were detected as bot-like*
Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [Steno Jig](https://joshuagrams.github.io/steno-jig/form.html) as well).
You may want to change some settings for steno input to work well:
| setting name | setting | notes |
| --------------- | ------- | - |
| freedom mode | on | Allows you to delete any word, even if typed wrong |
| strict space | on | Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke |
| stop on error | off | Allows you to write incorrect characters |
| confidence mode | off | Allow you to backspace |
| quick end | off | If on, means that the test will end as soon as the last word is is typed, even if incorrect |
| indicate typos | below/replace | Show typos |
- [ZType](https://zty.pe/)
Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
- [TypeRacer](http://typeracer.com) *Now bans steno users who show up in leaderboards, a sudden flip after years of steno users being allowed on the site*
Online realtime typing competition. Use the [steno universe](https://play.typeracer.com/?universe=steno) to avoid getting banned (but it does mean racing against fewer real people).
There is an input character limit which can get in the way when writing fast or writing phrases. You can install [this user script](https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit) to get around the limit ([instructions](https://greasyfork.org/en)).
- [10 Fast Fingers](https://10fastfingers.com/typing-test/english) *Bans steno users who break 100WPM*
Short test of most common words.
## Flashcards
You can use flashcards to help you memorise briefs, theory rules, phrases and more. See [Using Anki for Learning Stenography](https://github.com/openstenoproject/plover/wiki/Using-Anki-for-Learning-Stenography) for more details on how to get set up and community materials.
## Cheat sheets
Quick image and text references.
- QWERTY to steno layout
- [Steno board next to the QWERTY layout](https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png)
- Steno keys on top of a QWERTY keyboard
- [Full keyboard](http://i.imgur.com/qIh1iJ0.png)
- [Faded QWERTY](https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png)
- [Faded QWERTY, with finger positions](https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png)
- [Learn Plover! Cheat sheet](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet)
- [Chart with all the standard sounds in Plover on the steno board](https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit)
- [Which fingers to use for each key](https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit)
- [Steno order](https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit)
- Quick text references for:
- [Fingerspelling](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling)
- [Briefs](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs)
- [Prefix/Suffix strokes](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes)
- [Non-letters](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters)
- [Numbers](https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers)
- [Steno Explained](https://steno.sammdot.ca/explainers)
- [Steno Terminology](https://steno.sammdot.ca/steno-terminology.png)
- [Plover Theory Basics](https://steno.sammdot.ca/plover-basics.png)
- [Numbers](https://steno.sammdot.ca/plover-numbers.png)
- [Fingerspelling](https://steno.sammdot.ca/plover-fingerspelling.png)
- charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [Steno Explained](https://steno.sammdot.ca/explainers)
</markdown>
[[Category:Stenography]]
c48b27db36e4b0b272bd0951b90f46fd2bac3d9e
Brief Ideas
0
18
63
2024-02-05T16:04:12Z
Rice
1
Created page with "<markdown> [Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary. <img src="http://qwertysteno.com/Images/steno-keyboard1.gif">..."
wikitext
text/x-wiki
<markdown>
[Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary.
<img src="http://qwertysteno.com/Images/steno-keyboard1.gif">
## In the Main Dictionary
You can start using these patterns today!
### `SPW-` for int- and ent-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU">
This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use `SPW-`, although it's not documented in [Learn Plover]. Examples:
[Learn Plover]: https://www.openstenoproject.org/learn-plover/
* `SPWEPBLGT` for "intelligent".
* `SPWRABGT` for "interact".
* `SPWER` for "enter".
* `SPWAOEURL` for "entirely".
### `-FRP` for -mp
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY">
Usually, Plover theory (and Mirabai) uses `*PL` for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use `-FRP` to avoid conflicts and add `-B`, `-L` after -mp.
Common uses of this are to add -mpl or -mbl to the end of a stroke:
* `AFRP` for "amp" and `AFRPL` for "ample". This reduces conflicts with "apple" and "am".
* `EUFRP` for "imp"
### `-FP` and `-AOUFP` for -ture
<img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594">
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c">
`-FP` is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as `TPHAEUFP` (naich).
A note: For some of these words, a tense u sound (`AOUFP`) is used for -ture instead of just the `-FP`:
* `TPHAEUFP` for "nature"
* `KRAOEFP` for "creature"
* `KAOUFP` for "culture"
* `TPAOEFP` for "feature"
* `P*EUFP` for "picture"
* `STRAOUFP` for "structure"
* `SKAOUFP` for "sculpture"
* `FRA*FP` or `FRAOUFP` for "fracture"
## Non-Plover Theory Ideas
You will need to define new strokes in your dictionary with these ideas.
### `SKP-` for ex-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE">
The default dictionary uses a combination of `KP-` and `S-` to make the leading ex- sound. For example: `KPEUT` for "exit" for `SPHRAEUPB` for "explain".
The rules for which one to use [depend on the consonant following the ex-](https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0). If you don't like this, you can use `SKP-` for a leading ex-:
* `SKPRAGT` for "extract".
* `SKPERPBL` for "external".
* `SKPHRAEUPB` for "explain".
Note: The leading `SKP-` is also used for some phrase briefs starting with "and" in the default dictionary.
For example:
* `SKPEBG` for "and he can"
* `SKPALS` for "and also".
If this is a problem for you, you can also try `SK*` instead of `SKP-`.
### `KPW-` for im- and em-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s">
Examples:
* `KPWRES` for "impress".
### `-FR` for -m
<img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc">
Above it's shown that `-FRP` can be used in the default dictionary for -mp. This stroke extends that idea:
If `-PL` causes an issue (for example: "camel"), use `-FR`.
For example:
* `KAFRL` for "camel"
</markdown>
929fb4cbdd1d5371062cc39168ef23ad9d24b5db
90
63
2024-02-05T18:07:14Z
Rice
1
wikitext
text/x-wiki
<markdown>
[Learn Plover!](https://www.openstenoproject.org/learn-plover/) is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary.
<img src="http://qwertysteno.com/Images/steno-keyboard1.gif">
## In the Main Dictionary
You can start using these patterns today!
### `SPW-` for int- and ent-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU">
This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use `SPW-`, although it's not documented in [Learn Plover]. Examples:
[Learn Plover]: https://www.openstenoproject.org/learn-plover/
* `SPWEPBLGT` for "intelligent".
* `SPWRABGT` for "interact".
* `SPWER` for "enter".
* `SPWAOEURL` for "entirely".
### `-FRP` for -mp
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY">
Usually, Plover theory (and Mirabai) uses `*PL` for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use `-FRP` to avoid conflicts and add `-B`, `-L` after -mp.
Common uses of this are to add -mpl or -mbl to the end of a stroke:
* `AFRP` for "amp" and `AFRPL` for "ample". This reduces conflicts with "apple" and "am".
* `EUFRP` for "imp"
### `-FP` and `-AOUFP` for -ture
<img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594">
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c">
`-FP` is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as `TPHAEUFP` (naich).
A note: For some of these words, a tense u sound (`AOUFP`) is used for -ture instead of just the `-FP`:
* `TPHAEUFP` for "nature"
* `KRAOEFP` for "creature"
* `KAOUFP` for "culture"
* `TPAOEFP` for "feature"
* `P*EUFP` for "picture"
* `STRAOUFP` for "structure"
* `SKAOUFP` for "sculpture"
* `FRA*FP` or `FRAOUFP` for "fracture"
## Non-Plover Theory Ideas
You will need to define new strokes in your dictionary with these ideas.
### `SKP-` for ex-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE">
The default dictionary uses a combination of `KP-` and `S-` to make the leading ex- sound. For example: `KPEUT` for "exit" for `SPHRAEUPB` for "explain".
The rules for which one to use [depend on the consonant following the ex-](https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0). If you don't like this, you can use `SKP-` for a leading ex-:
* `SKPRAGT` for "extract".
* `SKPERPBL` for "external".
* `SKPHRAEUPB` for "explain".
Note: The leading `SKP-` is also used for some phrase briefs starting with "and" in the default dictionary.
For example:
* `SKPEBG` for "and he can"
* `SKPALS` for "and also".
If this is a problem for you, you can also try `SK*` instead of `SKP-`.
### `KPW-` for im- and em-
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s">
Examples:
* `KPWRES` for "impress".
### `-FR` for -m
<img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc">
Above it's shown that `-FRP` can be used in the default dictionary for -mp. This stroke extends that idea:
If `-PL` causes an issue (for example: "camel"), use `-FR`.
For example:
* `KAFRL` for "camel"
</markdown>
[[Category:Stenography]]
ec4cbe1d27f0b99017060ce039b8b56354027b2e
Steno layouts and supported languages
0
19
64
2024-02-05T16:04:42Z
Rice
1
Created page with "<markdown> A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English. The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems wo..."
wikitext
text/x-wiki
<markdown>
A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English.
The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [issues list](https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems).
| | |
| --- | ---------------------------------------------------- |
| 🔴 | Not supported in Plover |
| 🟠 | Work in progress, not actively updated or maintained |
| 🟡 | Work in progress |
| 🟢 | Stable and available for Plover |
## Languages
- English:
- [Stenotype](#stenotype-ireland)
- [Palantype](#possum-palantype)
- [Michela](#michela)
- [Phenrsteno](#phenrsteno)
- [Velotype](#velotype)
- [Jackdaw](#jackdaw)
- [Kinglet](#kinglet)
- Chinese, Mandarin (國語 / 普通话):
- [Yawei](#yawei)
- [EXun](#exun)
- [Suoheng](#suoheng)
- Chinese, Cantonese (粵語):
- [SanSan](#sansan)
- [MaaJik](#maajik)
- Czech / Čeština:
- [Stenotype](#czech-stenograph)
- [Trillo](#trillo)
- [Plover Czech](#plover-czech)
- Danish / Dansk: [Stenotype](#stenotype-ireland)
- Dutch / Nederlands:
- [Stenotype](#stenotype-ireland)
- [Velotype](#velotype)
- Finnish / Suomi:
- [Stenotype](#stenotype-ireland)
- [Especias](#especias)
- French / Français:
- [Stenotype](#stenotype-ireland)
- [Grandjean](#grandjean)
- German / Deutsch:
- [Stenotype](#stenotype-ireland)
- [Palantype](#possum-palantype)
- [Syllatype](#german-syllatype)
- Greek / Ελληνικά: [Stenotype](#stenotype-ireland)
- Hebrew / עברית: [Stenotype](#stenotype-ireland)
- Hindi / हिन्दी: [Stenotype](#stenotype-ireland)
- Italian / Italiano:
- [Stenotype](#stenotype-ireland)
- [Michela](#michela)
- Japanese / 日本語:
- [Stenotype](#stenotype-ireland)
- [Sokutaipu](#sokutaipu)
- [StenoWord](#stenoword)
- [Hachidori](#hachidori)
- [Frag](#frags-japanese-system)
- Korean / 한국어:
- [CAS](#korean-cas)
- [Sorizava](#sorizava)
- Polish / Polski: [Trillo](#trillo)
- Portuguese / Português: [Stenotype](#stenotype-ireland)
- Russian / Русский:
- [Stenotype](#stenotype-ireland)
- [Trillo](#trillo)
- Slovak / Slovenčina: [Trillo](#trillo)
- Spanish / Español:
- [Stenotype](#stenotype-ireland)
- [Grandjean](#grandjean)
- [Especias](#especias)
- Swedish / Svenska: [Palantype](#possum-palantype)
- Thai / ภาษาไทย: [Stenotype](#stenotype-ireland)
- Turkish / Türkçe: [Stenotype](#stenotype-ireland)
- Vietnamese / Tiếng Việt: [Stenotype](#stenotype-ireland)
---
## Stenotype (Ireland)
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ------------------------------------------------ | ---------- | ------------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Plover** | Mirabai Knight | English | Phonetic | Built-in | [147k entries](https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json) | [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) |
| 🟢 **Lapwing** | [Aerick](https://github.com/aerickt) | English | Phonetic | Built-in | [115k entries](https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json) | [Learning Resources](https://github.com/aerickt/lapwing-for-beginners/wiki)
| 🟡 **Cocoa** | [Kaoffie](https://github.com/Kaoffie) | English | Phonetic | Built-in |
| 🟢 **LaSalle** | Claire Lefebvre-Yelle | French | Phonetic | Built-in | [4.2k entries](https://github.com/morinted/la_tao_dictionary) | Non-realtime-capable theory, taught at the _École de sténographie judiciaire du Québec_ |
| 🟡 **Pluvier** | [Vermoot](https://github.com/Vermoot) | French | Phonetic | | | Realtime-capable theory based on LaSalle |
| 🟢 **Easy Korean Steno** | [Peter Park](https://github.com/petercpark) | Korean | Orthographic | Requires [plover-python-dictionary](https://github.com/openstenoproject/plover_python_dictionary) | [Python Dictionary](https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py)
| 🟢 **Stanley's** | [Stanley Sakai](https://github.com/stanographer) | Spanish | Phonetic | Built-in | [12k entries](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |
| 🟢 **EO Variant** | [Eliseo Ocampos](https://github.com/roskoff) | Spanish | Phonetic | [plover-spanish-system-eo-variant](https://github.com/roskoff/plover_spanish_system_eo_variant) | 71k entries | Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |
| 🔴 **Marino** | | Spanish | Phonetic | | | Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<br>[Overview](https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14)<br>[Facebook Page](https://www.facebook.com/stenocap) |
| 🟢 **Trillo Finnish** | Priscilla Trillo | Finnish | Phonetic | | [49k entries](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf) | [Textbook](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf) (in Finnish) |
| 🟢 **Aerick's** | [Aerick](https://github.com/aerickt) | Vietnamese | Orthographic | Built-in | [7k entries](https://github.com/aerickt/steno-dictionaries/blob/main/viet.json) | [Learning Resources](https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno)
| 🟢 **plover-vi** | user202729 | Vietnamese | Orthographic | [`plover-vi`](https://github.com/user202729/plover_vi) |
| 🟡 **Hindi Devanagari** | [winston](https://github.com/winstond/hind_plover_dictionary) | Hindi | Phonetic | N/A| [1,404 entries](https://github.com/winstond/hind_plover_dictionary)|[Home Page](https://github.com/winstond/hind_plover_dictionary)|
### Shavian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ----------- | ----------------- | ------------ | ------ | ---------- | --------------------------------------------------------------- |
| 🟠 **Magpie** | Lynn (Ruma) | English (Shavian) | Orthographic | | | Capable of both Shavian and orthodox (Latin script) translation |
### Brazilian Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by [Paulo Paniago](http://openstenoblog.blogspot.ca/2015/04/my-experience-in-open-source.html), published in the textbook _Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador_. Also included in some Stenograph machines.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | ----------------------------------------------------- | ---------- | -------- | -------------------------------------------------------------------- | ----------------------------------------------- | ----- |
| 🟢 **Brazilian Stenograph** | Randall Adam Czerenda, Jucineia J. de Andrade Pereira | Portuguese | Phonetic | [`plover-portuguese`](https://github.com/morinted/plover_portuguese) | 4k entries<br>(available on the Plover Discord) |
### Czech Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Czech Stenograph** | | Czech | Phonetic |
### Greek Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Greek Stenograph** | | Greek | Phonetic |
### Hebrew Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Hebrew Stenograph** | | Hebrew | Phonetic |
### Turkish Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Turkish Stenograph** | | Turkish | Phonetic |
### Russian Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Russian Stenograph** | | Russian | Phonetic |
### Spanish Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Spanish Stenograph** | | Spanish | Phonetic |
### German Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------ | ---------- | ----- |
| 🔴 **German Stenograph** | | German | Phonetic | [`plover-german`](https://github.com/percidae/plover_german) |
### Regenpfeifer
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the `-Z` key is replaced with `-N`.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ----------------------------------------- | -------- | -------- | --------------------------------------------------------------------- | ------------ | ------------------------------------------------------------- |
| 🟠 **Regenpfeifer** | [Martin Körner](https://github.com/mkrnr) | German | Phonetic | [`plover-regenpfeifer`](https://github.com/mkrnr/plover_regenpfeifer) | 219k entries | [Dictionary generator](https://github.com/mkrnr/regenpfeifer) |
### German Syllatype
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------- | -------------- | -------- | -------- | --------------- | ------------ | ------------------------------------------------------------- |
| 🟢 **Syllatype** | [YAMERO](https://github.com/YAMEROOOO) | German | Orthographic | [`plover-german-syllatype`](https://github.com/YAMEROOOO/plover-german-syllatype) | 5k+ entries (syllables) | |
### 42triangles' Kana System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------------- | ----------- | -------- | ----------------------------------------- | ------ | ---------- | -------------------- |
| 🟢 **42triangles' Kana System** | 42triangles | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | | | Relies on a user IME |
### Willem's Kana System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | --------------------------------------------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------------- | ---------- | -------------------- |
| 🟢 **Willem's Kana System** | [Willem Sonke](https://github.com/Willem3141) | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | [`plover-japanese-kana`](https://github.com/Willem3141/plover_japanese_kana) | | Relies on a user IME |
### Danish Hjejle
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ---------------------------------------------------- | -------- | -------- | -------- | -------------------------------------------------------- | ----- |
| 🟢 **Hjejle** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Danish | Phonetic | Built-in | [5k entries](https://github.com/SeaLiteral/hjejleOrdbog) |
### Melani
#### Italian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ------ | -------- | ------------ | ----------------------------------------------------------------- | ---------- | ----------------------------------- |
| 🟢 **Melani** | | Italian | Orthographic | [`plover-melani`](https://github.com/benoit-pierre/plover_melani) | | [Stenolab](https://www.stenolab.it) |
#### Spanish
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------------------------------------------- | -------- | -------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----- |
| 🟢 **MQD Melani** | [Noelia Ruiz Martínez](https://github.com/nvdaes) | Spanish | Phonetic | [`plover-spanish-mqd`](https://github.com/nvdaes/plover_spanish_mqd) | [11k entries](https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd) |
#### Russian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [this](https://github.com/openstenoproject/plover/issues/492) discussion about Russian steno.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Melani** | | Russian | Phonetic |
### Thai Steno
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------ | -------- | -------- | ------------------------------------------------------------------ | ---------- | ----- |
| 🟠 **Thai Steno** | Parnikkapore | Thai | Phonetic | [`plover-thsteno`](https://github.com/parnikkapore/plover_thsteno) |
### Jade's Dutch System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra `G` key on the left.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------------- | ---------------------------------------- | -------- | -------- | --------------------------------------------------------- | ------------ | ----- |
| 🟢 **Jade's Dutch System** | [Jade Geels](https://github.com/Jade-GG) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Jade-GG/Plover_Dutch) | 3.4k entries |
### Willem's Dutch System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------------------------------------ | ------------ | ----- |
| 🟢 **Willem's Dutch System** | [Willem Sonke](https://github.com/Willem3141) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Willem3141/plover_dutch) | 7.7k entries |
## Grandjean
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------- | ------ | -------- | -------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| 🟢 **Grandjean** | | French | Phonetic | [`plover-grandjean`](https://github.com/stenomax/plover_grandjean) | [690k+ entries](https://github.com/azizyemloul/plover-france-dict) | [GitHub](https://github.com/azizyemloul/plover-france-dict) |
| 🔴 **Grandjean** | | Spanish | Phonetic | | | [Asociacion Española de Estenotipistas](http://www.estenotipiaasociacion.com) |
## Michela
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------- | -------- | -------- | ------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| 🟢 **Michela** | Sillabix | Italian | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [103k entries](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | [Manual](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) |
| 🟡 **Michela** | Sillabix | English | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [150 entries](<https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json>) | [Manual](<https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction)>) |
| 🟡 **Midi4Text** | Sillabix | Italian | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [95k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA)>) |
| 🟡 **Midi4Text** | Sillabix | English | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [159k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.7).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG)>) |
## Possum Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [Possum Palantype](http://www.openstenoproject.org/palantype) is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [STTRs](https://en.wikipedia.org/wiki/Speech-to-text_reporter) worldwide for writing in English.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ |
| 🟢 **Palantype** | | English | Phonetic | [`plover-palantype`](https://github.com/morinted/plover_palantype) | 21k entries | [Learn Palantype](http://www.openstenoproject.org/palantype/) |
| 🔴 **Swedish Palantype** | | Swedish | Phonetic | [`plover-swedish-palantype`](https://github.com/stenoshrink/plover_swedish_palantype) | 87k entries | [Swedish Theory](https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory) |
### Plover German Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | -------------------------------------------------------------------------------- | ----------- | ----- |
| 🟢 **German Palantype** | | German | Phonetic | [`plover-palantype-german`](https://github.com/percidae/plover_palantype_german) | 85k entries |
### Ruben Moor's German Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ---------- | -------- | -------- | ------ | ----------------------------------------------- | --------------------------------- |
| 🟡 **German Palantype** | Ruben Moor | German | Phonetic | | 100k entries, with plans to expand to 2 million | [Tutorial](https://palantype.com) |
## Trillo
### Trillo Russian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ---------------- | -------- | -------- | ---------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Trillo Russian** | Priscilla Trillo | Russian | Phonetic | [`plover-russian-trillo`](https://github.com/morinted/plover_russian_trillo) | 15k entries | [Textbook](https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip) (in mixed English/Russian) |
### Trillo West Slavic
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ---------------- | --------------------- | -------- | ------ | ---------- | -------------------------------------------------------------------------------------------------- |
| 🟢 **Trillo West Slavic** | Priscilla Trillo | Czech, Slovak, Polish | Phonetic | | | [Textbook](https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages) |
## Yawei
### Yawei
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ------ | ----------------------------------- | ------------------------- | ------ | ---------- | ------------------------------------------------------------------------------- |
| 🟡 **Yawei** (亚伟) | | Mandarin (Traditional / Simplified) | Symmetric Toneless Pinyin | | | [Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95) |
### MaaJik
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------- | ------------------------------------------------------------------------------------- | ----------------------- | --------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----- |
| 🟡 **MaaJik** (孖翼) | [Sammi de Guzman](https://github.com/sammdot), [Samuel Lo](https://github.com/vatnid) | Cantonese (Traditional) | Symmetric Toneless Jyutping | [`plover-maajik`](https://github.com/sammdot/plover-maajik) | [314k entries](https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries) |
### SanSan
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------- | --------------------------------------------- | ----------------------- | --------------------------- | ------ | ---------- | ------------------------------------------------------- |
| 🟠 **SanSan** (珊々) | [Sammi de Guzman](https://github.com/sammdot) | Cantonese (Traditional) | Symmetric Toneless Jyutping | | | [Steno Explainers](https://steno.sammdot.ca/explainers) |
### TCIM
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------------- | ------ | ---------------------- | ------------------------- | -------------------------------------------------------- | ---------- | ----- |
| 🟡 **TCIM** (千鳥詞注) | [Quisette C](https://github.com/Quisette) | Mandarin (Traditional) | Symmetric Toneless Zhuyin | [`plover-tcim`](https://github.com/Quisette/plover-TCIM) |
## EXun
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------ | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- |
| 🔴 **EXun** (E 讯) | | Mandarin (Simplified) | Symmetric Toneless Pinyin |
## Suoheng
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- |
| 🔴 **Suoheng** (索恒) | | Mandarin (Simplified) | Symmetric Toneless Pinyin |
## Korean CAS
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [Korea Steno](http://www.koreasteno.com/) and features one of the two modern stenography systems for Korean in use today.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------ |
| 🟡 **CAS** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern C") | | [Theory documentation](https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas) |
## Korean Sorizava
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by [a company of the same name](http://www.sorizava.co.kr/), is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in [plover-korean](https://github.com/nsmarkop/plover_korean) but outside of a partial dictionary no theory materials have been obtained to progress further.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ----- |
| 🔴 **Sorizava** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern S") |
## Sokutaipu
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------------- | ------ | -------- | ------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- |
| 🟢 **Sokutaipu** (ソクタイプ) | | Japanese | Semi-Symmetric 2 Mora + 1 Coda<br>Pure Kana | [`plover-japanese-sokutaipu`](https://github.com/na4zagin3/plover_japanese_sokutaipu) | 365k entries | [Kana table](http://hoangmoc123.d.dooo.jp/sokutaipu.html) |
## StenoWord
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------------- | ------ | -------- | ------------------------------------ | ----------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- |
| 🟢 **StenoWord** (ステノワード) | | Japanese | Orthographic 1-Syllable<br>Pure Kana | [`plover-japanese-stenoword`](https://github.com/na2hiro/plover-japanese-stenoword) | 2.6k entries | [Kana table](http://hoangmoc123.d.dooo.jp/Stenoword.html) |
## Frag's Japanese System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------------- | ------ | -------- | ------------------------------------------------------------ | ------ | ---------- | ----- |
| 🟡 **Frag's Japanese System** | Frag | Japanese | Symmetric 2 Mora + 2 Coda<br>Stucture-based kanji conversion |
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
## Hachidori
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | ------------------------------------- | -------- | ------------------------- | ------ | ---------- | ----- |
| 🟡 **Hachidori** (はちどり) | [Kaoffie](https://github.com/Kaoffie) | Japanese | Symmetric 2 Mora + 2 Coda |
## Velotype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [Qweyboard](https://github.com/kqr/qweyboard) by kqr.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ------ | -------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------- |
| 🟢 **Velotype** | | English, Dutch | Orthographic | [`plover-syllabic-chording`](https://github.com/AlexandraAlter/plover_syllabic_chording) | | [Official website](https://www.velotype.com/en/homepage-eng/) |
## Jackdaw
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------- | ------ | -------- | ------------ | -------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------- |
| 🟢 **Jackdaw** | | English | Orthographic | [`plover-jackdaw-alt1`](https://github.com/user202729/plover-jackdaw-alt1) | | [Learn Plover! Jackdaw tutorial](https://sites.google.com/site/learnplover/jackdaw) |
## Kinglet
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------- | ------------- | -------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Kinglet** | Zachary Brown | English | Orthographic | [Plover 2.5.8 modified for Kinglet](https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg) | | [Learn Plover! Kinglet tutorial](https://sites.google.com/site/learnplover/kinglet-a-letter-based-stenotype-system) |
## Phenrsteno
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------- |
| 🟢 **Phenrsteno** | [Gregory Chamberlain](https://github.com/chambln) | English | Phonetic | [`plover-phenrsteno`](https://github.com/chambln/plover-phenrsteno) | 15k entries | [Phenrsteno wiki](https://github.com/chambln/plover-phenrsteno/wiki) |
## Plover Czech
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ------------------------------------------------ | -------- | -------- | ----------------------------------------------------------- | ---------- | ----- |
| 🟠 **Plover Czech** | [Ashlynn Anderson](https://github.com/lambdadog) | Czech | Phonetic | [`plover-czech`](https://github.com/lambdadog/plover_czech) |
## Especias
### Finnish Especias
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- |
| 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Finnish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) |
### Spanish Especias
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- |
| 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Spanish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) |
</markdown>
c394ebf98c1b723339b201f8036d563145fda72a
91
64
2024-02-05T18:07:37Z
Rice
1
wikitext
text/x-wiki
<markdown>
A chorded system, or _system_ for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. **System Plugins** allow Plover to support different machine types and languages other than English.
The [American Ward Stone Ireland Stenotype](https://en.wikipedia.org/wiki/Stenotype) is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [issues list](https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems).
| | |
| --- | ---------------------------------------------------- |
| 🔴 | Not supported in Plover |
| 🟠 | Work in progress, not actively updated or maintained |
| 🟡 | Work in progress |
| 🟢 | Stable and available for Plover |
## Languages
- English:
- [Stenotype](#stenotype-ireland)
- [Palantype](#possum-palantype)
- [Michela](#michela)
- [Phenrsteno](#phenrsteno)
- [Velotype](#velotype)
- [Jackdaw](#jackdaw)
- [Kinglet](#kinglet)
- Chinese, Mandarin (國語 / 普通话):
- [Yawei](#yawei)
- [EXun](#exun)
- [Suoheng](#suoheng)
- Chinese, Cantonese (粵語):
- [SanSan](#sansan)
- [MaaJik](#maajik)
- Czech / Čeština:
- [Stenotype](#czech-stenograph)
- [Trillo](#trillo)
- [Plover Czech](#plover-czech)
- Danish / Dansk: [Stenotype](#stenotype-ireland)
- Dutch / Nederlands:
- [Stenotype](#stenotype-ireland)
- [Velotype](#velotype)
- Finnish / Suomi:
- [Stenotype](#stenotype-ireland)
- [Especias](#especias)
- French / Français:
- [Stenotype](#stenotype-ireland)
- [Grandjean](#grandjean)
- German / Deutsch:
- [Stenotype](#stenotype-ireland)
- [Palantype](#possum-palantype)
- [Syllatype](#german-syllatype)
- Greek / Ελληνικά: [Stenotype](#stenotype-ireland)
- Hebrew / עברית: [Stenotype](#stenotype-ireland)
- Hindi / हिन्दी: [Stenotype](#stenotype-ireland)
- Italian / Italiano:
- [Stenotype](#stenotype-ireland)
- [Michela](#michela)
- Japanese / 日本語:
- [Stenotype](#stenotype-ireland)
- [Sokutaipu](#sokutaipu)
- [StenoWord](#stenoword)
- [Hachidori](#hachidori)
- [Frag](#frags-japanese-system)
- Korean / 한국어:
- [CAS](#korean-cas)
- [Sorizava](#sorizava)
- Polish / Polski: [Trillo](#trillo)
- Portuguese / Português: [Stenotype](#stenotype-ireland)
- Russian / Русский:
- [Stenotype](#stenotype-ireland)
- [Trillo](#trillo)
- Slovak / Slovenčina: [Trillo](#trillo)
- Spanish / Español:
- [Stenotype](#stenotype-ireland)
- [Grandjean](#grandjean)
- [Especias](#especias)
- Swedish / Svenska: [Palantype](#possum-palantype)
- Thai / ภาษาไทย: [Stenotype](#stenotype-ireland)
- Turkish / Türkçe: [Stenotype](#stenotype-ireland)
- Vietnamese / Tiếng Việt: [Stenotype](#stenotype-ireland)
---
## Stenotype (Ireland)
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ------------------------------------------------ | ---------- | ------------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Plover** | Mirabai Knight | English | Phonetic | Built-in | [147k entries](https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json) | [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) |
| 🟢 **Lapwing** | [Aerick](https://github.com/aerickt) | English | Phonetic | Built-in | [115k entries](https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json) | [Learning Resources](https://github.com/aerickt/lapwing-for-beginners/wiki)
| 🟡 **Cocoa** | [Kaoffie](https://github.com/Kaoffie) | English | Phonetic | Built-in |
| 🟢 **LaSalle** | Claire Lefebvre-Yelle | French | Phonetic | Built-in | [4.2k entries](https://github.com/morinted/la_tao_dictionary) | Non-realtime-capable theory, taught at the _École de sténographie judiciaire du Québec_ |
| 🟡 **Pluvier** | [Vermoot](https://github.com/Vermoot) | French | Phonetic | | | Realtime-capable theory based on LaSalle |
| 🟢 **Easy Korean Steno** | [Peter Park](https://github.com/petercpark) | Korean | Orthographic | Requires [plover-python-dictionary](https://github.com/openstenoproject/plover_python_dictionary) | [Python Dictionary](https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py)
| 🟢 **Stanley's** | [Stanley Sakai](https://github.com/stanographer) | Spanish | Phonetic | Built-in | [12k entries](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |
| 🟢 **EO Variant** | [Eliseo Ocampos](https://github.com/roskoff) | Spanish | Phonetic | [plover-spanish-system-eo-variant](https://github.com/roskoff/plover_spanish_system_eo_variant) | 71k entries | Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules. |
| 🔴 **Marino** | | Spanish | Phonetic | | | Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<br>[Overview](https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14)<br>[Facebook Page](https://www.facebook.com/stenocap) |
| 🟢 **Trillo Finnish** | Priscilla Trillo | Finnish | Phonetic | | [49k entries](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf) | [Textbook](https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf) (in Finnish) |
| 🟢 **Aerick's** | [Aerick](https://github.com/aerickt) | Vietnamese | Orthographic | Built-in | [7k entries](https://github.com/aerickt/steno-dictionaries/blob/main/viet.json) | [Learning Resources](https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno)
| 🟢 **plover-vi** | user202729 | Vietnamese | Orthographic | [`plover-vi`](https://github.com/user202729/plover_vi) |
| 🟡 **Hindi Devanagari** | [winston](https://github.com/winstond/hind_plover_dictionary) | Hindi | Phonetic | N/A| [1,404 entries](https://github.com/winstond/hind_plover_dictionary)|[Home Page](https://github.com/winstond/hind_plover_dictionary)|
### Shavian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ----------- | ----------------- | ------------ | ------ | ---------- | --------------------------------------------------------------- |
| 🟠 **Magpie** | Lynn (Ruma) | English (Shavian) | Orthographic | | | Capable of both Shavian and orthodox (Latin script) translation |
### Brazilian Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by [Paulo Paniago](http://openstenoblog.blogspot.ca/2015/04/my-experience-in-open-source.html), published in the textbook _Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador_. Also included in some Stenograph machines.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | ----------------------------------------------------- | ---------- | -------- | -------------------------------------------------------------------- | ----------------------------------------------- | ----- |
| 🟢 **Brazilian Stenograph** | Randall Adam Czerenda, Jucineia J. de Andrade Pereira | Portuguese | Phonetic | [`plover-portuguese`](https://github.com/morinted/plover_portuguese) | 4k entries<br>(available on the Plover Discord) |
### Czech Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Czech Stenograph** | | Czech | Phonetic |
### Greek Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Greek Stenograph** | | Greek | Phonetic |
### Hebrew Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Hebrew Stenograph** | | Hebrew | Phonetic |
### Turkish Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Turkish Stenograph** | | Turkish | Phonetic |
### Russian Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Russian Stenograph** | | Russian | Phonetic |
### Spanish Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Spanish Stenograph** | | Spanish | Phonetic |
### German Stenograph
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------ | ---------- | ----- |
| 🔴 **German Stenograph** | | German | Phonetic | [`plover-german`](https://github.com/percidae/plover_german) |
### Regenpfeifer
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the `-Z` key is replaced with `-N`.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ----------------------------------------- | -------- | -------- | --------------------------------------------------------------------- | ------------ | ------------------------------------------------------------- |
| 🟠 **Regenpfeifer** | [Martin Körner](https://github.com/mkrnr) | German | Phonetic | [`plover-regenpfeifer`](https://github.com/mkrnr/plover_regenpfeifer) | 219k entries | [Dictionary generator](https://github.com/mkrnr/regenpfeifer) |
### German Syllatype
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------- | -------------- | -------- | -------- | --------------- | ------------ | ------------------------------------------------------------- |
| 🟢 **Syllatype** | [YAMERO](https://github.com/YAMEROOOO) | German | Orthographic | [`plover-german-syllatype`](https://github.com/YAMEROOOO/plover-german-syllatype) | 5k+ entries (syllables) | |
### 42triangles' Kana System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------------- | ----------- | -------- | ----------------------------------------- | ------ | ---------- | -------------------- |
| 🟢 **42triangles' Kana System** | 42triangles | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | | | Relies on a user IME |
### Willem's Kana System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | --------------------------------------------- | -------- | ----------------------------------------- | ---------------------------------------------------------------------------- | ---------- | -------------------- |
| 🟢 **Willem's Kana System** | [Willem Sonke](https://github.com/Willem3141) | Japanese | Orthographic (Mora + Coda)<br>Romaji-only | [`plover-japanese-kana`](https://github.com/Willem3141/plover_japanese_kana) | | Relies on a user IME |
### Danish Hjejle
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ---------------------------------------------------- | -------- | -------- | -------- | -------------------------------------------------------- | ----- |
| 🟢 **Hjejle** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Danish | Phonetic | Built-in | [5k entries](https://github.com/SeaLiteral/hjejleOrdbog) |
### Melani
#### Italian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ------ | -------- | ------------ | ----------------------------------------------------------------- | ---------- | ----------------------------------- |
| 🟢 **Melani** | | Italian | Orthographic | [`plover-melani`](https://github.com/benoit-pierre/plover_melani) | | [Stenolab](https://www.stenolab.it) |
#### Spanish
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------------------------------------------- | -------- | -------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----- |
| 🟢 **MQD Melani** | [Noelia Ruiz Martínez](https://github.com/nvdaes) | Spanish | Phonetic | [`plover-spanish-mqd`](https://github.com/nvdaes/plover_spanish_mqd) | [11k entries](https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd) |
#### Russian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [this](https://github.com/openstenoproject/plover/issues/492) discussion about Russian steno.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------- | ------ | -------- | -------- | ------ | ---------- | ----- |
| 🔴 **Melani** | | Russian | Phonetic |
### Thai Steno
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------ | -------- | -------- | ------------------------------------------------------------------ | ---------- | ----- |
| 🟠 **Thai Steno** | Parnikkapore | Thai | Phonetic | [`plover-thsteno`](https://github.com/parnikkapore/plover_thsteno) |
### Jade's Dutch System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra `G` key on the left.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------------- | ---------------------------------------- | -------- | -------- | --------------------------------------------------------- | ------------ | ----- |
| 🟢 **Jade's Dutch System** | [Jade Geels](https://github.com/Jade-GG) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Jade-GG/Plover_Dutch) | 3.4k entries |
### Willem's Dutch System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------------------- | --------------------------------------------- | -------- | -------- | ------------------------------------------------------------ | ------------ | ----- |
| 🟢 **Willem's Dutch System** | [Willem Sonke](https://github.com/Willem3141) | Dutch | Phonetic | [`plover-dutch`](https://github.com/Willem3141/plover_dutch) | 7.7k entries |
## Grandjean
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------- | ------ | -------- | -------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| 🟢 **Grandjean** | | French | Phonetic | [`plover-grandjean`](https://github.com/stenomax/plover_grandjean) | [690k+ entries](https://github.com/azizyemloul/plover-france-dict) | [GitHub](https://github.com/azizyemloul/plover-france-dict) |
| 🔴 **Grandjean** | | Spanish | Phonetic | | | [Asociacion Española de Estenotipistas](http://www.estenotipiaasociacion.com) |
## Michela
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------- | -------- | -------- | ------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| 🟢 **Michela** | Sillabix | Italian | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [103k entries](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) | [Manual](https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano) |
| 🟡 **Michela** | Sillabix | English | Phonetic | [`plover-michela`](https://github.com/benoit-pierre/plover_michela) | [150 entries](<https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json>) | [Manual](<https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction)>) |
| 🟡 **Midi4Text** | Sillabix | Italian | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [95k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA)>) |
| 🟡 **Midi4Text** | Sillabix | English | Orthographic | [`plover-midi4text`](https://github.com/nsmarkop/plover_midi4text) | [159k entries](<https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.7).json>) | [Manual](<https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG)>) |
## Possum Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [Possum Palantype](http://www.openstenoproject.org/palantype) is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [STTRs](https://en.wikipedia.org/wiki/Speech-to-text_reporter) worldwide for writing in English.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------ | ------ | -------- | -------- | ------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------ |
| 🟢 **Palantype** | | English | Phonetic | [`plover-palantype`](https://github.com/morinted/plover_palantype) | 21k entries | [Learn Palantype](http://www.openstenoproject.org/palantype/) |
| 🔴 **Swedish Palantype** | | Swedish | Phonetic | [`plover-swedish-palantype`](https://github.com/stenoshrink/plover_swedish_palantype) | 87k entries | [Swedish Theory](https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory) |
### Plover German Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ------ | -------- | -------- | -------------------------------------------------------------------------------- | ----------- | ----- |
| 🟢 **German Palantype** | | German | Phonetic | [`plover-palantype-german`](https://github.com/percidae/plover_palantype_german) | 85k entries |
### Ruben Moor's German Palantype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------- | ---------- | -------- | -------- | ------ | ----------------------------------------------- | --------------------------------- |
| 🟡 **German Palantype** | Ruben Moor | German | Phonetic | | 100k entries, with plans to expand to 2 million | [Tutorial](https://palantype.com) |
## Trillo
### Trillo Russian
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ---------------- | -------- | -------- | ---------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Trillo Russian** | Priscilla Trillo | Russian | Phonetic | [`plover-russian-trillo`](https://github.com/morinted/plover_russian_trillo) | 15k entries | [Textbook](https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip) (in mixed English/Russian) |
### Trillo West Slavic
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------- | ---------------- | --------------------- | -------- | ------ | ---------- | -------------------------------------------------------------------------------------------------- |
| 🟢 **Trillo West Slavic** | Priscilla Trillo | Czech, Slovak, Polish | Phonetic | | | [Textbook](https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages) |
## Yawei
### Yawei
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ------ | ----------------------------------- | ------------------------- | ------ | ---------- | ------------------------------------------------------------------------------- |
| 🟡 **Yawei** (亚伟) | | Mandarin (Traditional / Simplified) | Symmetric Toneless Pinyin | | | [Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95) |
### MaaJik
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------- | ------------------------------------------------------------------------------------- | ----------------------- | --------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----- |
| 🟡 **MaaJik** (孖翼) | [Sammi de Guzman](https://github.com/sammdot), [Samuel Lo](https://github.com/vatnid) | Cantonese (Traditional) | Symmetric Toneless Jyutping | [`plover-maajik`](https://github.com/sammdot/plover-maajik) | [314k entries](https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries) |
### SanSan
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------------- | --------------------------------------------- | ----------------------- | --------------------------- | ------ | ---------- | ------------------------------------------------------- |
| 🟠 **SanSan** (珊々) | [Sammi de Guzman](https://github.com/sammdot) | Cantonese (Traditional) | Symmetric Toneless Jyutping | | | [Steno Explainers](https://steno.sammdot.ca/explainers) |
### TCIM
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------------------- | ------ | ---------------------- | ------------------------- | -------------------------------------------------------- | ---------- | ----- |
| 🟡 **TCIM** (千鳥詞注) | [Quisette C](https://github.com/Quisette) | Mandarin (Traditional) | Symmetric Toneless Zhuyin | [`plover-tcim`](https://github.com/Quisette/plover-TCIM) |
## EXun
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------ | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- |
| 🔴 **EXun** (E 讯) | | Mandarin (Simplified) | Symmetric Toneless Pinyin |
## Suoheng
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------- | ------ | --------------------- | ------------------------- | ------ | ---------- | ----- |
| 🔴 **Suoheng** (索恒) | | Mandarin (Simplified) | Symmetric Toneless Pinyin |
## Korean CAS
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [Korea Steno](http://www.koreasteno.com/) and features one of the two modern stenography systems for Korean in use today.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ---------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------ |
| 🟡 **CAS** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern C") | | [Theory documentation](https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas) |
## Korean Sorizava
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by [a company of the same name](http://www.sorizava.co.kr/), is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in [plover-korean](https://github.com/nsmarkop/plover_korean) but outside of a partial dictionary no theory materials have been obtained to progress further.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ------ | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | ---------- | ----- |
| 🔴 **Sorizava** | | Korean | Orthographic (Initial/Medial/Final) with Briefs | [`plover-korean`](https://github.com/nsmarkop/plover_korean) ("Korean Modern S") |
## Sokutaipu
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------------- | ------ | -------- | ------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- |
| 🟢 **Sokutaipu** (ソクタイプ) | | Japanese | Semi-Symmetric 2 Mora + 1 Coda<br>Pure Kana | [`plover-japanese-sokutaipu`](https://github.com/na4zagin3/plover_japanese_sokutaipu) | 365k entries | [Kana table](http://hoangmoc123.d.dooo.jp/sokutaipu.html) |
## StenoWord
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------------------- | ------ | -------- | ------------------------------------ | ----------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------- |
| 🟢 **StenoWord** (ステノワード) | | Japanese | Orthographic 1-Syllable<br>Pure Kana | [`plover-japanese-stenoword`](https://github.com/na2hiro/plover-japanese-stenoword) | 2.6k entries | [Kana table](http://hoangmoc123.d.dooo.jp/Stenoword.html) |
## Frag's Japanese System
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------------------- | ------ | -------- | ------------------------------------------------------------ | ------ | ---------- | ----- |
| 🟡 **Frag's Japanese System** | Frag | Japanese | Symmetric 2 Mora + 2 Coda<br>Stucture-based kanji conversion |
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
## Hachidori
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------------------- | ------------------------------------- | -------- | ------------------------- | ------ | ---------- | ----- |
| 🟡 **Hachidori** (はちどり) | [Kaoffie](https://github.com/Kaoffie) | Japanese | Symmetric 2 Mora + 2 Coda |
## Velotype
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [Qweyboard](https://github.com/kqr/qweyboard) by kqr.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ------ | -------------- | ------------ | ---------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------- |
| 🟢 **Velotype** | | English, Dutch | Orthographic | [`plover-syllabic-chording`](https://github.com/AlexandraAlter/plover_syllabic_chording) | | [Official website](https://www.velotype.com/en/homepage-eng/) |
## Jackdaw
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------- | ------ | -------- | ------------ | -------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------- |
| 🟢 **Jackdaw** | | English | Orthographic | [`plover-jackdaw-alt1`](https://github.com/user202729/plover-jackdaw-alt1) | | [Learn Plover! Jackdaw tutorial](https://sites.google.com/site/learnplover/jackdaw) |
## Kinglet
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| -------------- | ------------- | -------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- |
| 🟢 **Kinglet** | Zachary Brown | English | Orthographic | [Plover 2.5.8 modified for Kinglet](https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg) | | [Learn Plover! Kinglet tutorial](https://sites.google.com/site/learnplover/kinglet-a-letter-based-stenotype-system) |
## Phenrsteno
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ----------------- | ------------------------------------------------- | -------- | -------- | ------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------- |
| 🟢 **Phenrsteno** | [Gregory Chamberlain](https://github.com/chambln) | English | Phonetic | [`plover-phenrsteno`](https://github.com/chambln/plover-phenrsteno) | 15k entries | [Phenrsteno wiki](https://github.com/chambln/plover-phenrsteno/wiki) |
## Plover Czech
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
| | Author | Language | Type | Plugin | Dictionary | Notes |
| ------------------- | ------------------------------------------------ | -------- | -------- | ----------------------------------------------------------- | ---------- | ----- |
| 🟠 **Plover Czech** | [Ashlynn Anderson](https://github.com/lambdadog) | Czech | Phonetic | [`plover-czech`](https://github.com/lambdadog/plover_czech) |
## Especias
### Finnish Especias
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- |
| 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Finnish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) |
### Spanish Especias
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
| | Author | Language | Type | Plugin | Dictionary | Notes |
| --------------- | ---------------------------------------------------- | -------- | ------------ | -------- | ---------------------------------------------------- | ----- |
| 🟢 **Especias** | [Lars Rune Præstmark](https://github.com/SeaLiteral) | Spanish | Orthographic | Built-in | [Dictionary](https://github.com/SeaLiteral/especias) |
</markdown>
[[Category:Stenography]]
c504ae306b8be41514ee342f074a375cf617e271
List of available steno dictionaries
0
20
65
2024-02-05T16:05:12Z
Rice
1
Created page with "<markdown> Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc. In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below. ## Stenodict You'll find many free, open source steno dictionaries at the [Stenodict](https://www.open..."
wikitext
text/x-wiki
<markdown>
Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc.
In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below.
## Stenodict
You'll find many free, open source steno dictionaries at the [Stenodict](https://www.openstenoproject.org/stenodict/) website.
| Purpose | Author | Description |
| ---------------------------------- | ------------------ | ------------------ |
|Arrows | Ted Morin | Symbolic arrows → → made easy |
| Cross Platform Movement |Ted Morin | Movement and selection across Mac, Windows, and Linux |
| Di’s Mac Movement| Diana MacDonald | Extensive Mac movement and selection |
| Di’s Vim Commands | Diana MacDonald | Vim and steno were made for each other |
| Emoji | Ted Morin | Complete Emoji dictionary 😃 |
|General Command Line| Diana MacDonald | Briefs and entries for terminal users |
| Left Hand Modifier Keys | Achim Siebert | Left-hand keyboard shortcuts in only two strokes |
Left-side Mac Movement | Achim Siebert |Left movement shortcuts with selection for Mac |
| Markdown | Ted Morin| Best markup language meets best text entry system |
| Pokémon| Ted Morin | First 151 Pokémon written with Plover theory |
|Spectacle | Ted Morin | Window management with Spectacle, the free application for OS X |
| UK Spellings| Ted Morin | Replace US spellings in Plover's default dictionary |
| Unspaced Punctuation| Diana MacDonald| Punctuation with all the spaces suppressed |
| Vim Captioning| Mirabai Knight| Useful realtime captioning commands for Vim |
## Stanley Sakai's Steno dictionaries
Stanley Sakai's repository on GitHub - [Stanley's Steno Dictionaries](https://github.com/stanographer/steno-dictionaries)
| Language | Description |
| ---------------------------------- | ------------------ |
| braille.json | A starter dictionary for steno-based Braille input. |
|smalldict.json | Starter dictionary Mirabai gave Stan as a template (not actively updated or used). |
| stan-italiano.json | Dictionary started when doing an Italian class. Not very developed. |
| stanespanol.json | Main Spanish steno dictionary. |
| stanmain.json | His main English dictionary. |
| stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. |
## Diana MacDonald's repository
[Diana MacDonald's dictionaries](https://github.com/dimonster/plover-dictionaries). These include symbols, currency, smart punctuation, design, and coding dictionaries.
## Other dictionaries
* [Emily's Symbol Dictionary](https://github.com/EPLHREU/emily-symbols) and [Emily's Modifier Dictionary](https://github.com/EPLHREU/emily-modifiers). The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts.
* [Jade's Phrasing Dictionary](https://github.com/Jade-GG/plover_phrasing/), a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke.
* [JorWat's British Words](https://github.com/JorWat25/dictionaries/blob/main/british%20words.json), a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States".
## Dictionaries for non-English languages
| Language | Author |
| ---------------------------------- | ------------------ |
| [Italian](https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json) | Stanley Sakai |
| [Spanish](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |Stanley Sakai|
| [French](https://github.com/azizyemloul/plover-france-dict) | Aziz Yemloul |
| [Hindi हिन्दी](https://github.com/winstond/hind_plover_dictionary) | winston |
> Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [steno layouts & supported languages page](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages).
## Commercial stenography dictionaries
Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [Dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format) page for more information.
</markdown>
2aaeb06e2dcea7e5baba7dfe5931010a1259c1c2
92
65
2024-02-05T18:08:04Z
Rice
1
wikitext
text/x-wiki
<markdown>
Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc.
In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below.
## Stenodict
You'll find many free, open source steno dictionaries at the [Stenodict](https://www.openstenoproject.org/stenodict/) website.
| Purpose | Author | Description |
| ---------------------------------- | ------------------ | ------------------ |
|Arrows | Ted Morin | Symbolic arrows → → made easy |
| Cross Platform Movement |Ted Morin | Movement and selection across Mac, Windows, and Linux |
| Di’s Mac Movement| Diana MacDonald | Extensive Mac movement and selection |
| Di’s Vim Commands | Diana MacDonald | Vim and steno were made for each other |
| Emoji | Ted Morin | Complete Emoji dictionary 😃 |
|General Command Line| Diana MacDonald | Briefs and entries for terminal users |
| Left Hand Modifier Keys | Achim Siebert | Left-hand keyboard shortcuts in only two strokes |
Left-side Mac Movement | Achim Siebert |Left movement shortcuts with selection for Mac |
| Markdown | Ted Morin| Best markup language meets best text entry system |
| Pokémon| Ted Morin | First 151 Pokémon written with Plover theory |
|Spectacle | Ted Morin | Window management with Spectacle, the free application for OS X |
| UK Spellings| Ted Morin | Replace US spellings in Plover's default dictionary |
| Unspaced Punctuation| Diana MacDonald| Punctuation with all the spaces suppressed |
| Vim Captioning| Mirabai Knight| Useful realtime captioning commands for Vim |
## Stanley Sakai's Steno dictionaries
Stanley Sakai's repository on GitHub - [Stanley's Steno Dictionaries](https://github.com/stanographer/steno-dictionaries)
| Language | Description |
| ---------------------------------- | ------------------ |
| braille.json | A starter dictionary for steno-based Braille input. |
|smalldict.json | Starter dictionary Mirabai gave Stan as a template (not actively updated or used). |
| stan-italiano.json | Dictionary started when doing an Italian class. Not very developed. |
| stanespanol.json | Main Spanish steno dictionary. |
| stanmain.json | His main English dictionary. |
| stanplover.json |Additional entries to correct formatting errors caused by RTF -> JSON conversion. |
## Diana MacDonald's repository
[Diana MacDonald's dictionaries](https://github.com/dimonster/plover-dictionaries). These include symbols, currency, smart punctuation, design, and coding dictionaries.
## Other dictionaries
* [Emily's Symbol Dictionary](https://github.com/EPLHREU/emily-symbols) and [Emily's Modifier Dictionary](https://github.com/EPLHREU/emily-modifiers). The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts.
* [Jade's Phrasing Dictionary](https://github.com/Jade-GG/plover_phrasing/), a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke.
* [JorWat's British Words](https://github.com/JorWat25/dictionaries/blob/main/british%20words.json), a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States".
## Dictionaries for non-English languages
| Language | Author |
| ---------------------------------- | ------------------ |
| [Italian](https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json) | Stanley Sakai |
| [Spanish](https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json) |Stanley Sakai|
| [French](https://github.com/azizyemloul/plover-france-dict) | Aziz Yemloul |
| [Hindi हिन्दी](https://github.com/winstond/hind_plover_dictionary) | winston |
> Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [steno layouts & supported languages page](https://github.com/openstenoproject/plover/wiki/Steno-Layouts-&-Supported-Languages).
## Commercial stenography dictionaries
Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [Dictionary format](https://github.com/openstenoproject/plover/wiki/Dictionary-Format) page for more information.
</markdown>
[[Category:Stenography]]
c593662734c0d4d39415a1ee3470d1206ffc4bb8
The steno community
0
21
66
2024-02-05T16:05:40Z
Rice
1
Created page with "<markdown> There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online. ## Open Steno Project - [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2) Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcom..."
wikitext
text/x-wiki
<markdown>
There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online.
## Open Steno Project
- [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2)
Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief.
- [Ploversteno Facebook Group](https://www.facebook.com/groups/486062194804842/)
- [Ploversteno Google Group](https://groups.google.com/forum/#!forum/ploversteno)
The Plover Google Group. Subscribe for updates and conversation.
- [GitHub Discussions](https://github.com/openstenoproject/plover/discussions)
- Reddit: [Unofficial Plover Subreddit: /r/Plover](http://reddit.com/r/plover)
## General Stenography
- Facebook: [Encouraging Court Reporting Students](https://www.facebook.com/groups/ECRSgroup/)
- Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started.
+ [Steno List](https://twitter.com/morinted/lists/steno)
+ [#stenolife](https://twitter.com/hashtag/stenolife?src=hash)
</markdown>
ede41420d0b3ae2250071d80c7cb01b738873af3
Setting up a Stentura 400SRT with Plover
0
22
67
2024-02-05T16:07:03Z
Rice
1
Created page with "<nowiki>##</nowiki> What you need 1. Stentura Stenograph machine This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version. 1. A serial cable. There are a couple options here: + **Option 1: Stenograph realtime cable kit** The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing sp..."
wikitext
text/x-wiki
<nowiki>##</nowiki> What you need
1. Stentura Stenograph machine
This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version.
1. A serial cable.
There are a couple options here:
+ **Option 1: Stenograph realtime cable kit**
The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.**
+ **Option 2: Any RS232 (Also called DB9) male to female cross over-cable**
This is also known as Null Modem. This is a serial cable that will work with the machine.
Here are a few options from Amazon:
- [StarTech SCNM9FM2MBK](<nowiki>https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/</nowiki>)
- [Serial Modem Cable Female RS232](<nowiki>https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/</nowiki>)
- [C2G Female RS322 Adapter](<nowiki>https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/</nowiki>) — No cable, so very short. Useful to minimize the amount of cords
- [Cables Online Transfer Adapter](<nowiki>https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/</nowiki>) — Even shorter
1. USB to serial adapter
If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it.
* Serial (Female connector) to USB converter. Once again, here are some options:
+ [Sabrent Serial RS232 Converter](<nowiki>https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/</nowiki>)
+ [Tera Grand Premium USB to serial adapter](<nowiki>https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/</nowiki>) — No cable, so very short
+ [StarTech DCE Adapter Cable with FTDI Null Modem model](<nowiki>https://www.amazon.com/gp/product/B008634VJY/</nowiki>) - Requires a serial gender changer
Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway.
<nowiki>**</nowiki>It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work.
The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem"
<nowiki>##</nowiki> Putting it all together
If you have a **USB port:**
- Computer USB port → USB to serial adapter → serial cross-over cable → steno machine
If you have a **serial port** on your computer:
- Computer serial port → serial cross-over cable → steno machine
<nowiki>##</nowiki> Connecting to Plover
<nowiki>###</nowiki> Turning on your Stenograph Machine
Turn on the Stenograph with the switch on the face plate.
The green light indicates that the machine is powered on.
The red light signifies connection with a computer.
If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later.
<nowiki>###</nowiki> Configuring Plover
Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**.
Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one.
When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.)
Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above.
That's it. You should get output when typing.
<nowiki>##</nowiki> Stop the blinking
The lights blink when the internal memory is full, or if the battery is drained, or both.
if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one <nowiki>http://www.stenoworks.com/writer-accessories/writer-batteries/</nowiki> )
If the red light is blinking, then the internal memory is full or close to full. To clear it:
<nowiki>*</nowiki> turn the Stenograph off
<nowiki>*</nowiki> while holding STK, turn the machine back on.
<nowiki>*</nowiki> the lights should be both blinking back and forth. If not, try again from the start.
<nowiki>*</nowiki> press KWR to clear the memory, or TPH if you change your mind.
The memory will get full regularly so you'll have to do this occasionally. So remember it!
<nowiki>##</nowiki> Manual
Valentin from the [Plover Forums](<nowiki>https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ</nowiki>) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](<nowiki>https://0au.de/~apo/stentura_200_400_srt_manual.pdf</nowiki>).
<nowiki>##</nowiki> Resurrect a dead Stentura 200SRT/400SRT
If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer.
It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on
top of the steno mechanism, just under the cover that opens. There's a [video](<nowiki>https://youtu.be/ccxri4A-SbM</nowiki>) and an [Arduino sketch](<nowiki>https://github.com/balthamos/steno-arduino</nowiki>). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke.
Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](<nowiki>https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg</nowiki>) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches.
3998c92f35aa116c6af1d5e73068a07308206761
68
67
2024-02-05T16:07:17Z
Rice
1
wikitext
text/x-wiki
<markdown>
## What you need
1. Stentura Stenograph machine
This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version.
1. A serial cable.
There are a couple options here:
+ **Option 1: Stenograph realtime cable kit**
The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.**
+ **Option 2: Any RS232 (Also called DB9) male to female cross over-cable**
This is also known as Null Modem. This is a serial cable that will work with the machine.
Here are a few options from Amazon:
- [StarTech SCNM9FM2MBK](https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/)
- [Serial Modem Cable Female RS232](https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/)
- [C2G Female RS322 Adapter](https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/) — No cable, so very short. Useful to minimize the amount of cords
- [Cables Online Transfer Adapter](https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/) — Even shorter
1. USB to serial adapter
If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it.
* Serial (Female connector) to USB converter. Once again, here are some options:
+ [Sabrent Serial RS232 Converter](https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/)
+ [Tera Grand Premium USB to serial adapter](https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/) — No cable, so very short
+ [StarTech DCE Adapter Cable with FTDI Null Modem model](https://www.amazon.com/gp/product/B008634VJY/) - Requires a serial gender changer
Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway.
**It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work.
The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem"
## Putting it all together
If you have a **USB port:**
- Computer USB port → USB to serial adapter → serial cross-over cable → steno machine
If you have a **serial port** on your computer:
- Computer serial port → serial cross-over cable → steno machine
## Connecting to Plover
### Turning on your Stenograph Machine
Turn on the Stenograph with the switch on the face plate.
The green light indicates that the machine is powered on.
The red light signifies connection with a computer.
If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later.
### Configuring Plover
Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**.
Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one.
When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.)
Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above.
That's it. You should get output when typing.
## Stop the blinking
The lights blink when the internal memory is full, or if the battery is drained, or both.
if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one http://www.stenoworks.com/writer-accessories/writer-batteries/ )
If the red light is blinking, then the internal memory is full or close to full. To clear it:
* turn the Stenograph off
* while holding STK, turn the machine back on.
* the lights should be both blinking back and forth. If not, try again from the start.
* press KWR to clear the memory, or TPH if you change your mind.
The memory will get full regularly so you'll have to do this occasionally. So remember it!
## Manual
Valentin from the [Plover Forums](https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](https://0au.de/~apo/stentura_200_400_srt_manual.pdf).
## Resurrect a dead Stentura 200SRT/400SRT
If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer.
It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on
top of the steno mechanism, just under the cover that opens. There's a [video](https://youtu.be/ccxri4A-SbM) and an [Arduino sketch](https://github.com/balthamos/steno-arduino). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke.
Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches.
</markdown>
d7cdbef6f2777bf5d885862ccf9c910368b754fe
Stenotype Mnemonics for Beginners (English)
0
23
69
2024-02-05T16:08:15Z
Rice
1
Created page with "<markdown> ## Learning Steno Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice ## Single-stroke consonan..."
wikitext
text/x-wiki
<markdown>
## Learning Steno
Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process.
These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice
## Single-stroke consonants and single-stroke vowels

* Verbal mnemonic for consonants in steno order: <br>
"STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'" <br>
* Verbal mnemonic for single-key vowels <br>
"The bAt-bOt bEt her bUtt that she could put cat-boy behind bars..."
## Compound-stroke Mnemonic Images

Download [hi-res version](https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0)

Download [hi-res version](https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0)
## Mnemonic Image Keys: <br>
* Consonants:
**sh**oe
**z**ebra
**v**ote
**j**avelin
**n**ose
**th**ought
**f**eather
**d**ucky
**g**ift
**y**ellowbrickroad
**ch**op
**m**achinegun
**b**ubble
**l**ion
**p**ump
too**th**
yo**lk**
li**nk**
pat**ch**
cur**v**e
cru**nch** / **-lch**
ca**sh**
paw**n**
ko**ng**
pu**mp**
ha**m**
ba**dge** (**j**)
soc**k**
reda**ction** (**kshun**)
bu**lge** (**lj**)
lo**tion** (**shun**)
* Vowels: <br>
moon - AO - identifies homophones spelled "oo" or "oa" <br>
mitt - EU<br>
ape-baby - AEU <br>
rowing-boat - OE <br>
pea - AE - identifies homophones spelled "ea" or "ae" <br>
wheel - AOE <br>
oil - OEU - often "wildcard" for making funky briefs <br>
saw - AU <br>
soup - AOU <br>
pow - OU <br>
eye - AOEU <br>
## Notes:
* Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired
* Layered "xcf" image files editable in [GIMP](https://www.gimp.org/) are available [here](https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0) if you want to put in some of your own mnemonics.
* The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations.
* Info about mnemonic methods: [ArtOfMemory](http://artofmemory.com/) , [JoshFoerTEDTalk](https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en), [WorldMemoryChampionships](https://en.wikipedia.org/wiki/World_Memory_Championships) ,
* For I guess some of the source images included in the mnemonic montages are under education etc, "[fair use](https://en.wikipedia.org/wiki/Fair_use)". But other than that, feel free to use and abuse. Public domain for any of my contributions! :)
</markdown>
da5e9208099aee74436f4afa9dfbc23bc5ba18c1
MediaWiki:Common.css
8
6
70
39
2024-02-05T16:08:54Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
34511e392de1a2c3961ac9c105581826c1bb3ab8
Plover Wiki
0
3
71
51
2024-02-05T16:10:30Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|400x400px|center]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
5d0db791b4b03d24249215569e4cf9d34e6baff1
72
71
2024-02-05T16:10:54Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|185x185px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
128271f9bf7363ecce4273492808dba6df6cf26d
73
72
2024-02-05T16:11:33Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
95043e9c7981692032a74426fc6332cc1a7f0eab
94
73
2024-02-05T19:13:52Z
Rice
1
Rice moved page [[Plover]] to [[Plover Wiki]]
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
95043e9c7981692032a74426fc6332cc1a7f0eab
96
94
2024-02-05T19:33:43Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|369x369px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]]
faeca460a85e203680f0885ba29a25ed519d9b5d
97
96
2024-02-05T19:33:56Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|327x327px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]]
2297d4c2196e1540b6a369482ff0a4d08f4d7fe2
98
97
2024-02-05T19:35:31Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]]
b5c3de76cb5eeb2f091e197a2323bc7a295b24fd
99
98
2024-02-05T21:14:53Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome. Edit permissions are restricted to only accounts with a validated email address. [[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
86732b34643a33bc05bb119fa070f13d9b29e876
100
99
2024-02-05T21:16:14Z
Rice
1
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to only accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
2bed5e679fb5de01b5535372f4de81c809a66090
Installation Guide
0
8
74
52
2024-02-05T16:36:54Z
Rice
1
wikitext
text/x-wiki
<markdown>
**Table of Contents**
- [Install Plover on Windows](#install-plover-on-windows)
- [Install Plover on Mac](#install-plover-on-mac)
- [Install Plover on Linux](#install-plover-on-linux)
- [Troubleshooting](#troubleshooting)
- [Setting up my machine](#setting-up-my-machine)
- [Other installation methods](#other-installation-methods)
- [For developers: running from source](#for-developers-running-from-source)
# Install Plover on Windows
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe)
Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10)
## [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip)
Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover.
--------------------
# Install Plover on Mac
## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg)
1. Open the `.dmg` file.
1. In the mounted disk, drag the `Plover.app` to your `Applications` folder.
1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac)
1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`.
1. Click the `+` Button, and go to your applications and select `Plover.app`.
Plover is set up! You can run Plover like you would any other application.
> **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
### If you had previously uninstalled Plover or upgraded your system
Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5.
--------------------
# Install Plover on Linux
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch.
## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage)
To use it:
1. Download it
1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80)
1. Launch it like a standard executable
## Allow Access to Serial Ports
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
```
stat -c "%G" /dev/ttyACM*
```
You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
```
sudo usermod -aG <group> $USER
```
Replace `<group>` with the output of the previous command.
**Once you have added yourself to the right group, restart your computer.**
## Error relating to xcb
You may run into the following error when trying to run Plover:
> Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
Ensure that the following packages are installed:
- `libxcb`
- `xcb-util`
- `qt5-qtstyleplugins`
- `libxcb-cursor0`
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
```
./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'
```
# Setting up my machine
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine.
# Other installation methods
## Other releases
You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system.

## Homebrew Cask
If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line.
## Arch AUR package
Two AUR packages are provided:
1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release
2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master`
Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/).
## Gentoo git ebuild
Currently, only a git ebuild for the `master` branch is provided.
[Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies)
## Void Linux package
Plover is packaged in the Void Linux repositories under the package name `plover`.
Note: the plugins manager has not been packaged yet.
# Troubleshooting
If you get stuck, you can:
- Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues)
- Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions)
- If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new)
We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic.
# For developers: running from source
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
- [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows)
- [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux)
- [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx)
</markdown>
ac6d0ee4b7daaf88bfd092d34c6d6e19e3d06cd5
79
74
2024-02-05T17:59:44Z
Rice
1
wikitext
text/x-wiki
<markdown>
**Table of Contents**
- [Install Plover on Windows](#install-plover-on-windows)
- [Install Plover on Mac](#install-plover-on-mac)
- [Install Plover on Linux](#install-plover-on-linux)
- [Troubleshooting](#troubleshooting)
- [Setting up my machine](#setting-up-my-machine)
- [Other installation methods](#other-installation-methods)
- [For developers: running from source](#for-developers-running-from-source)
# Install Plover on Windows
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
## [Download the Windows installer here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe)
Run the installer and follow the onscreen instructions. You may need to [grant permissions for the app to bypass Windows Defender SmartScreen.](https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10)
## [Download the Windows portable ZIP here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip)
Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run `plover.exe` to start Plover.
--------------------
# Install Plover on Mac
## [Download Plover for Mac here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg)
1. Open the `.dmg` file.
1. In the mounted disk, drag the `Plover.app` to your `Applications` folder.
1. Open the Applications folder, and [follow the guide to launch a program from an unidentified developer.](https://support.apple.com/en-ca/guide/mac-help/mh40616/mac)
1. Open `System Preferences > Security & Privacy > Privacy > Accessibility`.
1. Click the `+` Button, and go to your applications and select `Plover.app`.
Plover is set up! You can run Plover like you would any other application.
> **Note**: Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
### If you had previously uninstalled Plover or upgraded your system
Repeat step 4, and remove Plover from the list. **Do not just uncheck Plover; you will have to explicitly remove Plover by using the `-` button**. Once Plover has been removed, readd `Plover.app` by repeating step 5.
--------------------
# Install Plover on Linux
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that **Plover is not officially supported on systems running Wayland at this moment**. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [this one](https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS) to determine if you're running Wayland and how to switch.
## [Download the Plover AppImage here](https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage)
To use it:
1. Download it
1. [Make it executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80)
1. Launch it like a standard executable
## Allow Access to Serial Ports
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
```
stat -c "%G" /dev/ttyACM*
```
You should see `dialout` or `uucp` depending on your distro. If the above command results in a "file not found" error, try replacing `ACM` with `USB` and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
```
sudo usermod -aG <group> $USER
```
Replace `<group>` with the output of the previous command.
**Once you have added yourself to the right group, restart your computer.**
## Error relating to xcb
You may run into the following error when trying to run Plover:
> Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
Ensure that the following packages are installed:
- `libxcb`
- `xcb-util`
- `qt5-qtstyleplugins`
- `libxcb-cursor0`
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
```
./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'
```
# Setting up my machine
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [Supported Hardware page](https://github.com/openstenoproject/plover/wiki/Supported-Hardware) to find instructions specific to your machine.
# Other installation methods
## Other releases
You can browse various other releases of Plover by scrolling through the [releases page](https://github.com/openstenoproject/plover/releases). To download a release, click on "Assets" and download the applicable file for your operating system.

## Homebrew Cask
If you have [**Homebrew Cask**](https://caskroom.github.io/) installed on your system, you can run `brew install --cask plover` at the command-line.
## Arch AUR package
Two AUR packages are provided:
1. [plover](https://aur.archlinux.org/packages/plover/) for the latest stable release
2. and [plover-git](https://aur.archlinux.org/packages/plover-git/) for the current `master`
Note: the plugins manager is not part of `plover-git`, and is available as a [separate package](https://aur.archlinux.org/packages/plover_plugins_manager/).
## Gentoo git ebuild
Currently, only a git ebuild for the `master` branch is provided.
[Personal overlay.](https://framagit.org/3/ebuilds) (out of date dependencies)
## Void Linux package
Plover is packaged in the Void Linux repositories under the package name `plover`.
Note: the plugins manager has not been packaged yet.
# Troubleshooting
If you get stuck, you can:
- Check the [troubleshooting guide.](https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues)
- Search for your problem in our [issue tracker](https://github.com/openstenoproject/plover/issues) and our [Discussions forum.](https://github.com/openstenoproject/plover/discussions)
- If you can't find your particular problem, [open a support request](https://github.com/openstenoproject/plover/issues/new/choose) or [start a Discussion.](https://github.com/openstenoproject/plover/discussions/new)
We also have a [Plover Discord Server](https://discord.gg/0lQde43a6dGmAMp2), the [steno community](https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community), and a [GitHub Discussions forum](https://github.com/openstenoproject/plover/discussions) if you have a general idea or discussion topic.
# For developers: running from source
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
- [`plover/windows`](https://github.com/openstenoproject/plover/tree/master/windows)
- [`plover/linux`](https://github.com/openstenoproject/plover/tree/master/linux)
- [`plover/osx`](https://github.com/openstenoproject/plover/tree/master/osx)
</markdown>
[[Category:Plover]]
87b1ee3a4390d9ce6a5ea31373c8f607d0650c99
106
79
2024-02-05T22:07:05Z
Astra
8
Initial markdown ~> mediawiki conversion
wikitext
text/x-wiki
'''Table of Contents'''
* [[#install-plover-on-windows|Install Plover on Windows]]
* [[#install-plover-on-mac|Install Plover on Mac]]
* [[#install-plover-on-linux|Install Plover on Linux]]
* [[#troubleshooting|Troubleshooting]]
* [[#setting-up-my-machine|Setting up my machine]]
* [[#other-installation-methods|Other installation methods]]
* [[#for-developers-running-from-source|For developers: running from source]]
<span id="install-plover-on-windows"></span>
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]
<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.
-----
<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote>
<span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5.
-----
<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.
<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable
<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''
<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.
<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
<div class="figure">
[[File:https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9|Downloading releases]]
</div>
<span id="homebrew-cask"></span>
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.
<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].
<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)
<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.
<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.
<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
27449225b67b778923ffad7f7a5cca50a15d8175
MediaWiki:Sidebar
8
5
75
34
2024-02-05T16:39:11Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
cd8c3cf2c4923c5cf895ea69695973b63d7b6a02
Other pages
0
24
76
2024-02-05T16:40:08Z
Rice
1
Created page with "<markdown> - [How to setup and use Plover with a Stentura 400SRT](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) - [Open Steno Project Timeline](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline) - [Stenotype Mnemonics for Beginners (English)](https://github.com/openstenoproject/plover/wiki/Stenotype-Mnemonics-for-Beginners-(English)) </markdown>"
wikitext
text/x-wiki
<markdown>
- [How to setup and use Plover with a Stentura 400SRT](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT)
- [Open Steno Project Timeline](https://github.com/openstenoproject/plover/wiki/Open-Steno-Project-Timeline)
- [Stenotype Mnemonics for Beginners (English)](https://github.com/openstenoproject/plover/wiki/Stenotype-Mnemonics-for-Beginners-(English))
</markdown>
ec57d0719f1f7e36a78fbc7aa2a091125ed5ad52
77
76
2024-02-05T16:42:48Z
Rice
1
wikitext
text/x-wiki
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
94909587d23c80d83463f16ac5cf6c196fc90aa8
Beginner's Guide
0
4
78
41
2024-02-05T17:58:22Z
Rice
1
wikitext
text/x-wiki
__TOC__
<markdown>
This guide explains how to **get started with Plover**. Plover is free stenography software. All the learning resources listed below are free-of-charge.
## Overview
The main steps are:
1. [Download and install the Plover application.](#markdown_Download_and_Install_Plover)
1. [Connect a compatible keyboard or stenography (steno) machine.](#markdown_Connect_a_compatible_keyboard_or_stenography_machine)
1. [Confirm it's working.](#markdown_Confirm_it's_working)
1. [Practice and learn stenography using Plover.](#markdown_Practice_and_learn)
## Download and Install Plover
Plover works on **Windows, Mac, and Linux**.
* [Download and install Plover with the Installation Guide 🚀](/index.php?title=Installation_Guide)
* If you get stuck, see the [troubleshooting guide](/index.php?title=Troubleshooting:_Common_Issues).
## Connect a compatible keyboard or stenography machine
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [Use a standard QWERTY keyboard](#use-a-standard-qwerty-keyboard)
* [Use an N-key rollover (NKRO) QWERTY keyboard](#use-an-n-key-rollover-nkro-qwerty-keyboard)
* [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
* [Use a machine designed for use with Plover](#use-a-machine-designed-for-use-with-plover)
* [Use a professional stenography machine](#use-a-professional-stenography-machine)
### Use a standard QWERTY keyboard
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
#### Arpeggiate
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.

To enable arpeggiate, open Plover's main window and press `Configure`. Under "Machine" enable `Arpeggiate` and click `Apply` and `OK` when you are done.

#### Rolling your strokes
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.

Regardless of if you roll or arpeggiate your strokes, make sure you [confirm it's working](#confirm-its-working).
### Use an N-key rollover (NKRO) QWERTY keyboard
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [confirm it's working](#confirm-its-working).
#### Which NKRO keyboard should I get?
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [list of supported keyboards](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards).
* See also: [Which type of key switch should I choose?](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose)
### Adapt a keyboard for steno use
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [Keytoppers](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers)
* [Keycaps](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps)
You can also use [a keyboard with an ortholinear layout](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout).
### Use a machine designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [Ecosteno*](https://nolltronics.com/product/ecosteno/)
* [Multisteno*](https://nolltronics.com/product/multisteno/)
* [Polyglot*](https://stenokeyboards.com/products/polyglot-keyboard)
* [Splitography*](https://softhruf.love/products/soft-hruf-erl)
* [Starboard*](https://www.stenography.store/)
* [TinyMod*](https://stenomod.blogspot.com/2018/11/tinymod2.html)
* [The Uni*](https://stenokeyboards.com/)
(* = External link)
More information: [Dedicated machines designed for use with Plover](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover).
### Use a professional stenography machine
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
## Confirm it's working
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [this video tutorial](https://www.youtube.com/watch?v=2tp_hSVCKN8) for how to set up a hobbyist steno keyboard that uses Gemini PR.
### Keyboard
By default, Plover will use your keyboard as its input device.
1. Run Plover.
1. Click the Output: **Enable** radio button.
### Write "Hello World"
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
> NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
| Output | Steno Key Stroke | QWERTY Keys |
| ---- | ---- | ---- |
| hell | `HEL` | `r` (left index index) <br> `n` (right thumb) <br> `o` (right ring finger ) |
| o | `HRO` | `rf` (left index finger pressing in between) <br> `v` (left thumb) |
| , | `-RBGS` | `j` (right index finger) <br> `k` (right middle finger) <br> `l` (right ring finger) <br> `;` (right pinkie finger) |
| world | `WORLD` | `d` (left middle finger) <br> `v` (left thumb) <br> `j` (right index finger) <br> `o` (right ring finger) <br> `[` (right pinkie finger) |
| . | `-FPLT` | `u` (right index finger) <br> `i` (right middle finger) <br> `o` (right ring finger) <br> `p` (right pinkie finger) |
If you see different output, open the paper tape (in Plover's main window under `Tools → Paper Tape`) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [stenography machine](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine)
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
#### Practice sentences
You can practice sentences that (mostly) only need two keys at once, on the [StenoJig](https://joshuagrams.github.io/steno-jig/two-key) website.
#### Use the correct body posture and finger placement
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.

On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the `C` and `V` keys and your right thumb is resting between the `N` and `M` keys. The rest should fall into place.
| QWERTY layout|Maps to steno layout |
|:---:|:---:|
|`QWER TY UIOP[`|`STPH ** FPLTD`|
|`ASDF GH JKL;`|`SKWR ** RBGSZ`|
|`CV NM`|`AO EU`|
See also:
* [Basic Hand Posture on the Steno Machine](https://www.youtube.com/watch?v=YfHNPW6EnHo)
* [Basic Body Position for Steno Students and Pros](https://www.youtube.com/watch?v=s_zyxgQvNEU)
### Stenography machine
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
1. Run Plover and click the **Enable** radio button.
1. Click the **Configure** button on the Plover Dialog screen. The Plover configuration screen appears.
1. On the **Machine** tab, select the protocol your machine uses.
1. Click **Save**.
See [Supported protocols](https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols) for more information.
## Practice and learn
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [Learning Resources](https://github.com/openstenoproject/plover/wiki/Learning-Stenography).
### Which steno theory should you learn?
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [Lapwing for Beginners Wiki](https://github.com/aerickt/lapwing-for-beginners/wiki).
**We recommend learning either Plover theory or Lapwing theory.**
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
</markdown>
[[Category:Plover]]
906f044233a6fa002ed4c8d4e98dfac519bcd23e
101
78
2024-02-05T21:50:51Z
Astra
8
convert to mediawiki format + fix typo
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Toubleshooting_Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<div class="figure">
[[File:https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif|Arpeggiate gif]]
</div>
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<div class="figure">
[[File:https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef|arpeggiate option]]
</div>
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
[[File:https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif|keyboard rolling]]
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
[[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]]
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
933a9e492421512c030104a2c54a21071ba66456
102
101
2024-02-05T21:51:05Z
Astra
8
fix troubleshooting link
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<div class="figure">
[[File:https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif|Arpeggiate gif]]
</div>
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<div class="figure">
[[File:https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef|arpeggiate option]]
</div>
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
[[File:https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif|keyboard rolling]]
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
[[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]]
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
647aea35898f7fc4a7e0e5c32654013c7261e576
103
102
2024-02-05T21:56:45Z
Astra
8
external images
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
[[File:https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png|Steno keys on QWERTY keyboard]]
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
4f43a4971ec3379a5ae4fe58a50207865115f918
104
103
2024-02-05T21:57:06Z
Astra
8
external images pt 2
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
6ed05f69242480dd32a092151d5ae0c810d65879
105
104
2024-02-05T22:03:36Z
Astra
8
re-add plover category
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
65b1853227a6b1e1ee92aefacce1ceb15c055d65
Category:Plover
14
25
80
2024-02-05T18:00:22Z
Rice
1
Created page with "Plover documentation pages"
wikitext
text/x-wiki
Plover documentation pages
c6d5c913c4f37ed8eb1f6bdc9622169b5f303524
Supported hardware
0
10
81
55
2024-02-05T18:01:11Z
Rice
1
wikitext
text/x-wiki
<markdown>
This page lists the machine known to work with Plover.
**Table of Contents**
- [Dedicated machines designed for use with Plover](#dedicated-machines-designed-for-use-with-plover)
- [Commercially Available Hobbyist Machines](#commercially-available-hobbyist-machines)
- [DIY Machines](#diy-machines)
- [Out-of-production Machines](#out-of-production-machines)
- [Stenotype Machines](#stenotype-machines)
- [Supported protocols](#supported-protocols)
- [Known supported stenotypes](#known-supported-stenotypes)
- [Keyboards](#keyboards)
- [What's NKRO?](#whats-nkro)
- [How do I know if my keyboard has NKRO](#how-do-i-know-if-my-keyboard-has-nkro)
- [Test #1: Double Shift](#test-1-double-shift)
- [Test #2: Keyboard Ghosting Test](#test-2-keyboard-ghosting-test)
- [What if my keyboard is not capable of NKRO?](#what-if-my-keyboard-is-not-capable-of-nkro)
- [Known supported keyboards](#known-supported-keyboards)
- [Which type of key switch should I choose?](#which-type-of-key-switch-should-i-choose)
- [Adapt a keyboard for steno use](#adapt-a-keyboard-for-steno-use)
- [Keytoppers](#keytoppers)
- [Keycaps](#keycaps)
- [NKRO keyboards with an ortholinear layout](#nkro-keyboards-with-an-ortholinear-layout)
- [Laptops with NKRO](#laptops-with-nkro)
- [Laptops that don't actually work with Plover](#laptops-that-dont-actually-work-with-plover)
# Dedicated machines designed for use with Plover
Various steno enthusiasts are making and selling machines designed for use with Plover.
## Commercially Available Hobbyist Machines
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
| Product Name | Manufacturer | About | Price |
| - | - | ---- | - |
| [Ecosteno](https://nolltronics.com/product/ecosteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>**Stock status** (as of January 2024): In stock | $95 |
| [Multisteno](https://nolltronics.com/product/multisteno/) | [Nolltronics](https://nolltronics.com/) | <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>**Stock status** (as of January 2024): In stock | $170 |
| [Polyglot](https://stenokeyboards.com/products/polyglot-keyboard) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>**Stock status** (as of January 2024): In stock| $125 |
| [SOFT/HRUF Splitography](https://softhruf.love) | Scott Urueta | <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, "soft love". The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch's internal leaflet, it is possible to reduce the force required to actuate.<br><br>**Stock status** (as of January 2024): Out of stock. [(source)](https://softhruf.love/products/soft-hruf-erl) | $138 |
| [Starboard](https://www.stenography.store/) | [Stenography Store](https://www.stenography.store/) | <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>**Stock status** (as of January 2024): In stock | $90 (+ $10 shipping) |
| [TinyMod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [Mirabai's review](http://plover.stenoknight.com/2019/12/tinymod-review.html).<br><br>**Stock status** (as of January 2024): In stock | $140 (stock)<br>$180 (silent) |
| [The Uni](https://www.stenokeyboards.com/products/the-uni-v4) | [StenoKeyboards](https://www.stenokeyboards.com) | <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>**Stock status** (as of January 2024): In stock | $100 |
## DIY Machines
Projects to build your own machine.
| Product Name | About |
| ---------------------------------- | ----------------------- |
| [MechWild BB Steno](https://mechwild.com/product/bb-steno/) | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
| [Picosteno](https://nolltronics.com/product/picosteno/) | <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
| [Stenokey](https://github.com/mike-ady/Stenokey) | <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer. |
| [The Uni v2 PCB](https://stenokeyboards.com/products/uni-v2-pcb) | <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes. |
| [Yet Another Steno Keyboard](https://github.com/ttempe/YASK)| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [build instructions](https://youtu.be/82yD0RMeEw8)|
## Out-of-production Machines
Models that are no longer made or available for sale.
| Product Name | Manufacturer | About | Years |
| ---------------------------------- | ------------------ | ----------------------- | ----- |
| Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard's keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use. | 2014-2017 |
| [SOFT/HRUF](https://softhruf.love) | Scott Urueta | <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF. | 2017-2018, superseded by the Splitography |
| [Stenomod](https://stenomod.blogspot.com) | Charley Shattuck | <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [Ted Morin's review of the Stenomod](https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine) as well as [Martin Körner's review](https://stenoblog.com/the-stenomod/). The name is supposed to hint at how the machine is "modular" and adaptable. | 2017-2018, superseded by the TinyMod |
| [Georgi](https://www.gboards.ca/product/georgi) | [g Heavy Industries](https://www.gboards.ca) | <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [Martin's Georgi Stand with Trackball review](https://stenoblog.com/georgi-stand-with-trackball/), [Mirabai's review](http://plover.stenoknight.com/2019/12/georgi-review.html), [Aerick's Georgi Mount](https://aerick.ca/steno/georgi-stand/), and [Josh's photos](https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04). | 2019-2021 |
| [Steko](https://quanicboards.com/products/steko) | [Quanic Boards](https://quanicboards.com) | <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps. | 2022-2023 |
# Stenotype Machines
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/>
## Supported protocols
Plover supports several protocols that are in use by various machines:
* **Stentura serial**: most machines by Stenograph and many others.
* **Gemini PR serial**: typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* **ProCAT**: protocol used by all ProCAT machines.
* **TX Bolt**: an older protocol supported by some machines as a primary or secondary protocol.
* **Treal**: used only by the Treal from Word Technologies.
* **Passport**: used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.
## Known supported stenotypes
The following machines have been confirmed by users to work with Plover
after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| Elan Cybra Student | Stenograph | Stenograph USB OR TX Bolt (serial) | |
| Flash, Blaze, Impression, and Xpression | ProCAT | ProCAT (serial, *maybe*) | (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer. |
| Flash Writer | ProCAT | TX Bolt | Press `Mode` (far right button), click `Setup`, then press the `Emul` button. Display should read `Emulate: Baron` |
| Gemini2 | Neutrino Group | Gemini PR (serial) | |
| Gemini RT | Neutrino Group | TX Bolt | Must start a job on screen or in [Infinity2](https://www.infinitytraditional.com/infinity-2/) |
| Lightspeed | Stenovations | TX Bolt (serial over USB/Bluetooth) | Baud rate 9600 |
| Lightspeed Touch | Stenovations | Gemini PR, TX Bolt (USB only) | Must use provided "Lightspeed Zenith" software, not the "Lightspeed" software from the Stenovations website. Protocol can be changed depending on the "Writer Mode" setting in options. Choose "Model II and Model III" at startup. |
| Infinity Ergonomic | Neutrino Group | Gemini PR (serial over USB/Bluetooth) | Baud rate 115200 |
| Infinity Genesis | Neutrino Group | Gemini PR (serial) | |
| Passport | Advantage Software | Passport (USB) | |
| Passport Touch | Advantage Software | USB, Bluetooth | While in "Emulation Mode": Stentura over Bluetooth or TX Bolt over USB |
| Revolution Grand | Neutrino Group | Gemini PR (serial) | |
| Stentura 400 SRT | Stenograph | Stentura (serial) | [Setup Instructions](https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT) |
| Stentura 200 SRT | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 500 | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura 8000 and 8000LX | Stenograph | Stentura (serial) | (same instructions as the 400 SRT) |
| Stentura Protégé | Stenograph | Stentura (serial) OR Stenograph USB | Works with the `plover-stenograph` plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [Setup Instructions for Serial](https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions)|
| Tréal | Word technologies | Treal (USB) | |
| Wave | Stenograph | Stentura (serial) OR Stenograph USB | Requires Stenograph drivers to do serial on Windows. All platforms can use the `plover-stenograph` plugin. Make sure "serial protocol" on the Wave is set to "Stentura". |
| Luminex II | Stenograph | Stenograph USB OR Stenograph Wi-Fi | All platforms can use the `plover-stenograph` plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi. |
# Keyboards
If you don't have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
## What's NKRO?
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once.
For more information, see the [Wikipedia entry about NKRO](https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover).
## How do I know if my keyboard has NKRO
In general, most keyboards will not be NKRO. "Gaming" and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit [https://keyboardchecker.com/](https://keyboardchecker.com/) and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
## What if my keyboard is not capable of NKRO?
If you don't have a keyboard that's capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [Beginner's Guide](https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard) for more information.
## Known supported keyboards
You can search for NKRO keyboards compatible with Plover by including "NKRO" or "anti-ghosting" in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Comments | Price
| --------------------------- | ---------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Anne Pro II | Obinslabs | NKRO over USB; 6KRO over bluetooth; Works on Mac | $20-100
| Aukey KM-G9 | Aukey | NKRO over USB; May not work on Mac | $35-50
| I-500 Victop (compact: 87 keys) | Eastern times tech | NKRO over USB | [27 GBP](https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/)
| DareU DK87 (red switch) | DareU | NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [similar model](http://www.dareu.com/?m=home&c=View&a=index&aid=169), they may have the glitch mentioned above or not. | < $30
| TOMOKO (87 key Mechanical Keyboard) | TOMOKO | NKRO over USB (Works on Mac) | [$30](https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/)
| K552 | Redragon | NKRO over USB | [$35](https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U)
| X51 (Gaming Mechanical Keyboard 87/104) | Metoo | NKRO over USB | [$40](https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html)
| ZM-K600S | Zalman | NKRO over USB | [$40](https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE)
| K582 | Redragon | NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO) | [$50](https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/)
| K66 | Corsair | NKRO over USB | [$55](https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/)
| K63 | Corsair | NKRO over USB (Works on Mac!) | [$80](https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT)
| K68 | Corsair | NKRO over USB | $160-200
| K95 | Corsair | NKRO over USB | [~$200](https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM)
| KG901 | Marvo | NKRO over USB | $30-70 AUD
| STRAFE | Corsair | NKRO over USB | [$80](https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/)
| CM Storm Quickfire TK | Cooler Master | NKRO over USB (Doesn't work on Mac) | [$85](https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/)
| Vengeance K65 | Corsair | NKRO over USB | [$90](http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html)
| C413 Carbon | Logitech | 26KRO | [$90](https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html)
| Francium Pro | Deck | NKRO over USB when in "lightning" mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you'd be stuck with 6KRO). | [$94](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690)
| Noppoo Choc | Noppoo | NKRO over USB (works on Mac without adapters) | [$95](https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1)
| Razer BlackWidow V3 Tenkeyless | Razer | 14KRO over USB when in "gaming" mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested. | [$100](https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1)
| Apex M750 TKL | SteelSeries | NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working) | [$120](https://www.amazon.com/dp/B076XDTLBB)
| G710+ | Logitech | NKRO over USB | [$130](https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard)
| Majestouch-2 | Filco | NKRO over USB | [$167](https://amzn.to/oLy2xQ)
| Das Keyboard 4 Ultimate | Das Keyboard | NKRO over USB requires key sequence to enable. See fine print on underside of keyboard | [$169](https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/)
| Apex M800 | SteelSeries | NKRO over USB | [$199](https://steelseries.com/gaming-keyboards/apex-m800)
| Ergo Pro | Matias | NKRO over USB | [$200](https://matias.ca/ergopro/pc/)
| Ultimate Hacking Keyboard | Ultimate Gadget Labs | NKRO over USB | [$250](https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard)
| Ergodox | Ergodox | NKRO over USB | [Parts €160.00 - Assembled €247.00](https://falba.tech/customize-your-keyboard/customize-your-ergodox/)
| Ergodox EZ (swappable switches) | ZSA Technology Labs, Inc.| NKRO over USB | [EZ Only $270 - All Upgrades $354+](https://ergodox-ez.com)
| Planck EZ (swappable switches) | ZSA Technology Labs, Inc. | NKRO over USB | [ Planck only $180 - W/LED Backlighting $195 ](https://ergodox-ez.com/pages/planck)
| Model01 | Keyboard.io | NKRO over USB | [$329](https://shop.keyboard.io)
| Vortex Race 3 | Vortex Keyboard | NKRO over USB (Only 6KRO on Mac. Untested on Linux) | [$139](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917)
### Which type of key switch should I choose?
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a **light actuation force** on a **linear** switch.
The light actuation makes it easier on your hands. For a chord like `TKPWHRAOEUGD` (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that's 640cN (~640g, ~22.6 oz). **For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.**
| How many keys are in the average chord? | |
| --- | --- |
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1 | <img src="https://i.imgur.com/77sH9t0.png" width="500px" /> |
The linearity is recommended because it's been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn't process all the fingers' feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between **10cN and 20cN**, with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between **2mm and 30mm**. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that "speed switches" with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
| Switch | Stat | Note | Machines |
| ------ | ---- | ---- | ------- |
| Kailh Choc Pink Pro | 20 cN linear | The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier | All Nolltronics boards use this switch |
| Gateron Clear / White | 35 cN linear | A popular stock option available on the market | Stenomod uses this switch |
| Matias Red | 35 cN linear | Feels heavier than 35 cN switches due to having a "flat" force curve. Matias also has a different stem from Cherry | SOFT/HRUF uses this switch |
| Cherry MX Red | 45 cN linear | | |
| Kailh Silver | 50 cN spring* linear | Has an early actuation (1.1mm vs 2mm) | |
| Cherry MX Brown | 45 cN bumpy | While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches | |
|Kailh Choc Red | 50 cN spring* linear | | The Georgi uses this switch |
\* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
- Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
- Putting the Gateron Clear's 35 cN spring into the Kailh Silver for its earlier actuation point.
- Trimming the springs of a linear switch by several mm to reduce force.
- Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn't yet released to the wider market.
- Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
## Adapt a keyboard for steno use

Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.
### Keytoppers
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [Plover Store](http://plover.deco-craft.com/). You can also make your own keytoppers out of plastic or even coins.

### Keycaps
If you have a mechanical keyboard, it is likely your keys have a [Cherry MX stem](https://deskthority.net/wiki/Cherry_MX) and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
- [StenoToppers](https://cemrajc.github.io/stenotoppers/) is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.
<img src="https://imgur.com/FRwXu8x.jpg" width="400">
- The [G20 keycap set](https://pimpmykeyboard.com/g20-blank-keycap-sets/) from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (`STPH...`) down, so that they are close to the bottom row (`SKWR...`)
- You can 3D-print a [steno-friendly keycap](https://github.com/morinted/stenomod_case).
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
## NKRO keyboards with an ortholinear layout
Keyboards with an "ortholinear" layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
| Product Name | Manufacturer | Protocol/Connection | Comments |
| ---------------------------------- | ------------------ | ------------------- | ----------------------- |
| [ErgoDox](https://deskthority.net/wiki/ErgoDox) | ErgodoxEZ, Massdrop, FalbaTech, others | USB | The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [guide to Starting Stenography with an Ergodox by Paul Fioravanti](https://www.paulfioravanti.com/blog/starting-stenography-ergodox/). |
| [Planck](https://olkb.com/planck/) | OLKB | USB | The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [guide to starting stenography with a Planck by DiDoesDigital](https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/). <br /> |
|[Preonic](https://olkb.com/preonic/)| OLKB | USB | The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard. |
| [Gherkin](http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html) | | USB | The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
| [Iris](https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard) | Keebio | USB | The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
<a id="notebooks-with-nkro"></a>
# Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don't feel as good as the Alienware's classic keyboard style. It's always best to try laptop keyboards at a local store, if possible.
| Model | Screen Size | Manufacturer | Rollover | Price (USD) | Weight |
| -------- | ----------- | --------------- | ------- | ----- | ------ |
| [Alienware R3/R4](https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops) | 13", 15", 17" | Dell | n-key | **$1000** to $3000 | 5.8 to 9.8 lbs |
| [GL553](https://www.asus.com/ca-en/Laptops/ROG-GL553VD/) | 15" | Asus | 30-key | $1200 | 5.5 lbs |
| [Razer Blade Stealth 8th Gen](https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth) | 13" | Razer | 14-key | $1200+ | **2.98 lbs** |
| [Zephyrus GM501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/) | 15" | Asus | 30-key | $1500 to $2200 | 5.5lbs |
| [Omen X](https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html) | 17" | HP | n-key* | $1800 | 10.7 lbs |
| [P57X](https://www.gigabyte.com/Laptop/P57X-v7) | 17" | Gigabyte | 30-key | $1800 | 6.6 + 2.2 (power adaptor) lbs |
| [GL502](https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/) | 15" | Asus | 30-key | $1900 | 4.9 lbs |
| [Aero 15/15x](https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H) | 15" | Gigabyte | 80-key* | $2000 to $2900 | 4.6 lbs |
| [Legion Y920](https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877) | 17" | Lenovo | 100-key* | $2200 | 10.1 lbs |
| [Zephyrus GX501](https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/) | 15" | Asus | 30-key | $2500 | 4.85lbs |
| Aorus [X5 v8](https://www.aorus.com/product-detail.php?p=744) and [X7 v8](https://www.aorus.com/product-detail.php?p=745) | 15", 17" | Aorus | 80-key* | $2600, $3000 | 5.51 lbs, 7.05 lbs |
| [Predator Triton 700](https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q) | 15" | Acer | n-key (clicky keys) | $3000 | 5.3 lbs |
\* Untested for use with Plover
## Laptops that don't actually work with Plover
After testing some of the laptops on the list above, they were found to not live up to their claims.
| Model | Manufacturer | Claimed Rollover | Findings |
| -------- | --------------- | ------- | ----- |
| HP Omen [15](https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr) and [17](https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr) | HP | "26-key rollover anti-ghosting" | Combination "YUHJ" on Qwerty only produces 3 letters |
| [GF62](https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html) and [GP72](https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M) | MSI | "anti-ghosting for up to 45 keys" | 99% of chords were OK, certain combinations wouldn't work -- e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords. |
</markdown>
[[Category:Plover]]
5717d753a5a0d13587a4d775302a90159bc5f8e1
Category:Stenography
14
26
87
2024-02-05T18:05:33Z
Rice
1
Created page with "Pages with information regarding stenography in general and not specific to Plover"
wikitext
text/x-wiki
Pages with information regarding stenography in general and not specific to Plover
bab08ad68b57d9376da62d3e858278c39f6de4a2
MediaWiki:Mainpage
8
2
93
6
2024-02-05T19:13:28Z
Rice
1
wikitext
text/x-wiki
Plover_Wiki
b2ec40901c908023ad11137d7264ad0029b40c8b
Installation Guide
0
8
107
106
2024-02-05T22:11:09Z
Astra
8
Fix spacing, typos, links
wikitext
text/x-wiki
'''Table of Contents'''
* [[#install-plover-on-windows|Install Plover on Windows]]
* [[#install-plover-on-mac|Install Plover on Mac]]
* [[#install-plover-on-linux|Install Plover on Linux]]
* [[#troubleshooting|Troubleshooting]]
* [[#setting-up-my-machine|Setting up my machine]]
* [[#other-installation-methods|Other installation methods]]
* [[#for-developers-running-from-source|For developers: running from source]]<span id="install-plover-on-windows"></span>
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span>
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
50cffe8c3b8954b2c9fc2eafa5a84c913c737b78
108
107
2024-02-05T22:14:17Z
Astra
8
add troubleshooting inlink
wikitext
text/x-wiki
'''Table of Contents'''
* [[#install-plover-on-windows|Install Plover on Windows]]
* [[#install-plover-on-mac|Install Plover on Mac]]
* [[#install-plover-on-linux|Install Plover on Linux]]
* [[#troubleshooting|Troubleshooting]]
* [[#setting-up-my-machine|Setting up my machine]]
* [[#other-installation-methods|Other installation methods]]
* [[#for-developers-running-from-source|For developers: running from source]]<span id="install-plover-on-windows"></span>
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span>
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
97431c32afcc0bb3c2c415874848c7fb8e0a9011
116
108
2024-02-05T22:55:38Z
Rice
1
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.<span id="homebrew-cask"></span>
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
ba3f1a33b469d230502c01ddc0f3e2099488ad93
149
116
2024-02-11T00:23:50Z
Aerick
9
Add gif for installing other plover versions
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
7ee7f1360241be5c618b7c89ecc7052123b16452
Troubleshooting issues
0
14
109
85
2024-02-05T22:16:55Z
Astra
8
Initial markdown ~> mediawiki conversion
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.
-----
<!-- TOC -->
* [[#running-in-debug-mode|Running in Debug Mode]]
* [[#issues|Issues]]
** [[#general|General]]
*** [[#plover-does-not-recognize-my-usb-keyboard-or-steno-machine|Plover does not recognize my USB keyboard or steno machine]]
*** [[#strokes-no-longer-appear-when-using-keyboard|Strokes no longer appear when using keyboard]]
*** [[#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right|When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right]]
** [[#plugins-manager|Plugins Manager]]
** [[#dictionary-issues|Dictionary issues]]
*** [[#dictionary-priority|Dictionary priority]]
*** [[#if-you-have-your-own-dictionary-already|If you have your own dictionary already]]
** [[#about-the-default-dictionaries|About the default dictionaries]]
*** [[#mainjson|main.json]]
*** [[#commandsjson|commands.json]]
*** [[#userjson|user.json]]
** [[#windows-1|Windows]]
*** [[#unrecognized-keystrokes-and-other-strange-behavior|Unrecognized keystrokes and other strange behavior]]
*** [[#no-output|No output]]
** [[#macos|macOS]]
*** [[#plover-does-not-run-macos|Plover does not run (macOS)]]
*** [[#unrecognized-keystrokes|Unrecognized keystrokes]]
** [[#linux|Linux]]
*** [[#unrecognized-keystrokes-1|Unrecognized keystrokes]]
*** [[#linux-dynamic-keyboard-layout-switching-is-not-working|Linux dynamic keyboard layout switching is not working]]
*** [[#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine|Delayed/slow output when using gnome-shell and the keyboard machine]]
<!-- /TOC -->
<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)
<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
<blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine.
</blockquote>
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.
<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.
<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]
<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.
<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.
<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.
<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.
<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.
<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]
<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li><p>If Plover does not have the permission, you’ll see this error message</p>
<blockquote><p>Exception: Enable access for assistive devices.</p></blockquote></li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul>
<span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].
<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).
<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span>
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
035cd3cc644d373b26fa06c8a1e787db8f603132
110
109
2024-02-05T22:25:49Z
Astra
8
Spacing fix
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.
-----
<!-- TOC -->
* [[#running-in-debug-mode|Running in Debug Mode]]
* [[#issues|Issues]]
** [[#general|General]]
*** [[#plover-does-not-recognize-my-usb-keyboard-or-steno-machine|Plover does not recognize my USB keyboard or steno machine]]
*** [[#strokes-no-longer-appear-when-using-keyboard|Strokes no longer appear when using keyboard]]
*** [[#when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right|When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right]]
** [[#plugins-manager|Plugins Manager]]
** [[#dictionary-issues|Dictionary issues]]
*** [[#dictionary-priority|Dictionary priority]]
*** [[#if-you-have-your-own-dictionary-already|If you have your own dictionary already]]
** [[#about-the-default-dictionaries|About the default dictionaries]]
*** [[#mainjson|main.json]]
*** [[#commandsjson|commands.json]]
*** [[#userjson|user.json]]
** [[#windows-1|Windows]]
*** [[#unrecognized-keystrokes-and-other-strange-behavior|Unrecognized keystrokes and other strange behavior]]
*** [[#no-output|No output]]
** [[#macos|macOS]]
*** [[#plover-does-not-run-macos|Plover does not run (macOS)]]
*** [[#unrecognized-keystrokes|Unrecognized keystrokes]]
** [[#linux|Linux]]
*** [[#unrecognized-keystrokes-1|Unrecognized keystrokes]]
*** [[#linux-dynamic-keyboard-layout-switching-is-not-working|Linux dynamic keyboard layout switching is not working]]
*** [[#delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine|Delayed/slow output when using gnome-shell and the keyboard machine]]
<!-- /TOC --><span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
<blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine.
</blockquote>
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span>
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
a85b43d2af697cced922e85cddf69fe0ff327f75
127
110
2024-02-05T23:29:02Z
Rice
1
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
<blockquote>'''Note''': Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine.
</blockquote>
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span>
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
7633446c8961edf77113c41c40911d070df9aa06
Supported hardware
0
10
111
81
2024-02-05T22:28:02Z
Astra
8
Initial markdown ~> mediawiki conversion
wikitext
text/x-wiki
This page lists the machines known to work with Plover.
-----
<!-- TOC -->
* [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]]
** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]]
** [[#diy-machines|DIY Machines]]
** [[#out-of-production-machines|Out-of-production Machines]]
* [[#stenotype-machines|Stenotype Machines]]
** [[#supported-protocols|Supported protocols]]
** [[#known-supported-stenotypes|Known supported stenotypes]]
* [[#keyboards|Keyboards]]
** [[#whats-nkro|What’s NKRO?]]
** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]]
*** [[#test-1-double-shift|Test #1: Double Shift]]
*** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]]
** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]]
** [[#known-supported-keyboards|Known supported keyboards]]
*** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]]
** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
*** [[#keytoppers|Keytoppers]]
*** [[#keycaps|Keycaps]]
** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]]
* [[#laptops-with-nkro|Laptops with NKRO]]
** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]]
<!-- /TOC -->
<span id="dedicated-machines-designed-for-use-with-plover"></span>
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.
<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" /> A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" /> The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" /> Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" /> An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" /> Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" /> A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}
<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}
<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/>
<span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.
<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.
<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}
<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
[[File:https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg]]
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.
<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<div class="figure">
[[File:https://i.imgur.com/cjWDy2J.jpg|Laser-cut keytoppers sitting in a pile]]
</div>
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
* Untested for use with Plover
<span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
873f61d75587035dd9213bcc3cd3e674e250b336
112
111
2024-02-05T22:29:47Z
Astra
8
Image spacing
wikitext
text/x-wiki
This page lists the machines known to work with Plover.
-----
<!-- TOC -->
* [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]]
** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]]
** [[#diy-machines|DIY Machines]]
** [[#out-of-production-machines|Out-of-production Machines]]
* [[#stenotype-machines|Stenotype Machines]]
** [[#supported-protocols|Supported protocols]]
** [[#known-supported-stenotypes|Known supported stenotypes]]
* [[#keyboards|Keyboards]]
** [[#whats-nkro|What’s NKRO?]]
** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]]
*** [[#test-1-double-shift|Test #1: Double Shift]]
*** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]]
** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]]
** [[#known-supported-keyboards|Known supported keyboards]]
*** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]]
** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
*** [[#keytoppers|Keytoppers]]
*** [[#keycaps|Keycaps]]
** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]]
* [[#laptops-with-nkro|Laptops with NKRO]]
** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]]
<!-- /TOC -->
<span id="dedicated-machines-designed-for-use-with-plover"></span>
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.
<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}
<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" /> A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" /> Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" /> The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/> YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" /> The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" /> Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" /> Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" /> A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}
<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/>
<span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.
<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.
<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}
<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
[[File:https://c1.staticflickr.com/5/4202/34180678224_98d3e26f1f_n.jpg]]
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.
<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<div class="figure">
[[File:https://i.imgur.com/cjWDy2J.jpg|Laser-cut keytoppers sitting in a pile]]
</div>
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
* Untested for use with Plover
<span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
df68b05e17b8f6579013e954cdffc276a330389a
114
112
2024-02-05T22:37:14Z
Astra
8
Spacing and images
wikitext
text/x-wiki
This page lists the machines known to work with Plover.
-----
<!-- TOC -->
* [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]]
** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]]
** [[#diy-machines|DIY Machines]]
** [[#out-of-production-machines|Out-of-production Machines]]
* [[#stenotype-machines|Stenotype Machines]]
** [[#supported-protocols|Supported protocols]]
** [[#known-supported-stenotypes|Known supported stenotypes]]
* [[#keyboards|Keyboards]]
** [[#whats-nkro|What’s NKRO?]]
** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]]
*** [[#test-1-double-shift|Test #1: Double Shift]]
*** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]]
** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]]
** [[#known-supported-keyboards|Known supported keyboards]]
*** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]]
** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
*** [[#keytoppers|Keytoppers]]
*** [[#keycaps|Keycaps]]
** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]]
* [[#laptops-with-nkro|Laptops with NKRO]]
** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]]
<!-- /TOC -->
<span id="dedicated-machines-designed-for-use-with-plover"></span>
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<div class="figure">
<img src="https://imgur.com/cjWDy2J">
</div><span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
db2b1ea5e9850fcc6ff25c07a3886d77bed6f610
115
114
2024-02-05T22:39:25Z
Rice
1
/* Keytoppers */
wikitext
text/x-wiki
This page lists the machines known to work with Plover.
-----
<!-- TOC -->
* [[#dedicated-machines-designed-for-use-with-plover|Dedicated machines designed for use with Plover]]
** [[#commercially-available-hobbyist-machines|Commercially Available Hobbyist Machines]]
** [[#diy-machines|DIY Machines]]
** [[#out-of-production-machines|Out-of-production Machines]]
* [[#stenotype-machines|Stenotype Machines]]
** [[#supported-protocols|Supported protocols]]
** [[#known-supported-stenotypes|Known supported stenotypes]]
* [[#keyboards|Keyboards]]
** [[#whats-nkro|What’s NKRO?]]
** [[#how-do-i-know-if-my-keyboard-has-nkro|How do I know if my keyboard has NKRO]]
*** [[#test-1-double-shift|Test #1: Double Shift]]
*** [[#test-2-keyboard-ghosting-test|Test #2: Keyboard Ghosting Test]]
** [[#what-if-my-keyboard-is-not-capable-of-nkro|What if my keyboard is not capable of NKRO?]]
** [[#known-supported-keyboards|Known supported keyboards]]
*** [[#which-type-of-key-switch-should-i-choose|Which type of key switch should I choose?]]
** [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
*** [[#keytoppers|Keytoppers]]
*** [[#keycaps|Keycaps]]
** [[#nkro-keyboards-with-an-ortholinear-layout|NKRO keyboards with an ortholinear layout]]
* [[#laptops-with-nkro|Laptops with NKRO]]
** [[#laptops-that-dont-actually-work-with-plover|Laptops that don’t actually work with Plover]]
<!-- /TOC -->
<span id="dedicated-machines-designed-for-use-with-plover"></span>
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
d2d52aa5eb9c2ffa7a0ef5dc86856a1f4f563f9e
117
115
2024-02-05T22:56:13Z
Rice
1
wikitext
text/x-wiki
This page lists the machines known to work with Pl
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
a8dfdae432f7ef0d0252633b5cd407e3a501017e
118
117
2024-02-05T22:56:25Z
Rice
1
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://github.com/openstenoproject/plover/wiki/How-to-setup-and-use-Plover-with-a-Stentura-400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [https://github.com/openstenoproject/plover/wiki/Stentura-Protege-Setup-and-Usage-Instructions Setup Instructions for Serial]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide%3A-Get-Started-with-Plover#use-a-standard-qwerty-keyboard Beginner’s Guide] for more information.<span id="known-supported-keyboards"></span>
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
4ff083d92c04e8cdd8686ad982be1d086c22542f
134
118
2024-02-06T03:17:28Z
Rice
1
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br /> [[File:https://i.imgur.com/e9B2qpO.jpg|Planck steno keyboard]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
85700edf7680aa4e08067d4b910de65de7e1f7df
Category:Pages with broken file links
14
28
113
2024-02-05T22:30:42Z
Rice
1
Created page with "Broken file links"
wikitext
text/x-wiki
Broken file links
7eabfb27f0fa8fb1e08df09c469078b1c6e0e1c7
Dictionary format
0
11
119
82
2024-02-05T23:06:07Z
Rice
1
Replace github md with mediawiki format
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#plover-control-commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== JSON and RTF/CRE ==
Plover supports two types of dictionaries:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#strokes-and-dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
See this blackbox test for an example.
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#prefixes-infixes-suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#output-modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#keyboard-shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#retroactively-delete-space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#prefixes-infixes-and-suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#retroactively-add-space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#prefixes-infixes-and-suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#do-nothing-translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#keyboard-shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names.
|}
Consult the code for the full list of supported keyboard shortcut keys.
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#canceling-formatting-of-next-word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
8502a3379f2e7952da574ab03d7982291d850543
124
119
2024-02-05T23:23:06Z
Rice
1
fix relative links
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#plover-control-commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== JSON and RTF/CRE ==
Plover supports two types of dictionaries:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
See this blackbox test for an example.
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names.
|}
Consult the code for the full list of supported keyboard shortcut keys.
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
118af42f5dc63225a75a2650032ef8aeada814d0
125
124
2024-02-05T23:24:43Z
Rice
1
fix relative link
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== JSON and RTF/CRE ==
Plover supports two types of dictionaries:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
See this blackbox test for an example.
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>…and more
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the definition file in <nowiki><code>python-xlib</code></nowiki> for the key names.
|}
Consult the code for the full list of supported keyboard shortcut keys.
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
135aad1c40bb4e94f754e86e9c95cfee414922b4
126
125
2024-02-05T23:28:11Z
Rice
1
add external links
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== JSON and RTF/CRE ==
Plover supports two types of dictionaries:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
2b737dfa1b3d787fcf9326306ac2f51f67198b9d
Built-in tools
0
12
120
83
2024-02-05T23:09:18Z
Rice
1
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#dictionary-editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the <nowiki>[[dictionary editor|Built-in tools#Dictionary editor]]</nowiki> on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* <nowiki>[[Add an entry|Built-in tools#Add translation dialog]]</nowiki> to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
* Undo last action.
* Remove selected entry/entries.
* Add a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
06d752eebd2b840c6eef0cdefd91f529fceaa750
121
120
2024-02-05T23:09:48Z
Rice
1
/* Lookup tool */
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the <nowiki>[[dictionary editor|Built-in tools#Dictionary editor]]</nowiki> on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* <nowiki>[[Add an entry|Built-in tools#Add translation dialog]]</nowiki> to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
* Undo last action.
* Remove selected entry/entries.
* Add a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
9be4e1514d91c31931271cf3a694d56ba9ad25e1
122
121
2024-02-05T23:12:04Z
Rice
1
/* Dictionaries field */
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "show suggestions" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
* Undo last action.
* Remove selected entry/entries.
* Add a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
bd3f7680d1a97b89a66204e0ac104f6a739e81c5
Open Steno Project timeline
0
13
123
84
2024-02-05T23:17:13Z
Rice
1
Replace md with mediawiki syntax
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
[[Category:Plover]]
bb4c50545da281b456d59eb6cfd5728277f71252
FAQ
0
15
128
86
2024-02-06T02:34:32Z
Rice
1
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
''Stan's Quick and Dirty: How Stenography Works''
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the Beginner's Guide.
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is here.
=== Who's responsible for Plover's development? ===
Plover was originally created by Mirabai Knight and Joshua Harlan Lifton, and is the software arm of The Open Steno Project, an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused Mirabai Knight to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as Dvorak or Colemak), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like Chopin's Fantasie Impromptu.
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— Learn Plover!</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like Rachmaninoff's Prelude in G Minor.
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25)
|<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30)
|<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05)
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36)
|<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00)
|<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59)
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
# Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these links to the community.
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* Contributing code
* Reporting issues
* Editing this wiki
* Getting involved in the community
* Donating money
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* NKRO, so you don't have to arpeggiate.
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno.
* Lighter keys, so it's less fatiguing.
Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page.
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines.
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* Emily Symbols, for typing symbols (including those not in the main Plover dictionary)
* Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free
* Plover Emoji, for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo
* Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo
* Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** Emily Symbols for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** stenodict a user-submitted collection of dictionaries
*** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site)
*** Emily's dictionaries
*** Antistic's dictionaries
*** Paul's dictionaries
*** Josiah's dictionaries
* For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made.
If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the discord server is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the glossary.
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue #72)
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44)
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
9429f00ce7060811ed06abcfef623daaeec18282
129
128
2024-02-06T02:38:53Z
Rice
1
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the Beginner's Guide.
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is here.
=== Who's responsible for Plover's development? ===
Plover was originally created by Mirabai Knight and Joshua Harlan Lifton, and is the software arm of The Open Steno Project, an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused Mirabai Knight to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as Dvorak or Colemak), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like Chopin's Fantasie Impromptu.
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— Learn Plover!</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like Rachmaninoff's Prelude in G Minor.
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25)
|<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30)
|<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05)
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36)
|<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00)
|<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59)
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
# Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these links to the community.
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* Contributing code
* Reporting issues
* Editing this wiki
* Getting involved in the community
* Donating money
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* NKRO, so you don't have to arpeggiate.
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno.
* Lighter keys, so it's less fatiguing.
Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page.
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines.
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* Emily Symbols, for typing symbols (including those not in the main Plover dictionary)
* Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free
* Plover Emoji, for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo
* Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo
* Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** Emily Symbols for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** stenodict a user-submitted collection of dictionaries
*** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site)
*** Emily's dictionaries
*** Antistic's dictionaries
*** Paul's dictionaries
*** Josiah's dictionaries
* For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made.
If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the discord server is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the glossary.
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue #72)
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44)
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
67a0ad437f0688ec6fecb4c8c39ff14ef17e2db2
130
129
2024-02-06T02:45:50Z
Rice
1
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|<nowiki><img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" /></nowiki><nowiki><br></nowiki>(click to view video — 3:25)
|<nowiki><img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" /></nowiki><nowiki><br></nowiki>(click to view video — 0:30)
|<nowiki><img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" /></nowiki><nowiki><br></nowiki>(click to view video — 1:05)
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|<nowiki><img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" /></nowiki><nowiki><br></nowiki>(click to view video — 3:36)
|<nowiki><img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:00)
|<nowiki><img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" /></nowiki><nowiki><br></nowiki>(click to view video — 2:08:59)
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
# Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these links to the community.
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* Contributing code
* Reporting issues
* Editing this wiki
* Getting involved in the community
* Donating money
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* NKRO, so you don't have to arpeggiate.
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno.
* Lighter keys, so it's less fatiguing.
Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page.
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines.
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* Emily Symbols, for typing symbols (including those not in the main Plover dictionary)
* Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free
* Plover Emoji, for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo
* Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo
* Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** Emily Symbols for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** stenodict a user-submitted collection of dictionaries
*** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site)
*** Emily's dictionaries
*** Antistic's dictionaries
*** Paul's dictionaries
*** Josiah's dictionaries
* For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made.
If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the discord server is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the glossary.
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue #72)
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44)
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
b361636785c86ccae7b7df616b060bf933432c17
131
130
2024-02-06T02:48:00Z
Rice
1
/* What does using Plover look like? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|<img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25)
|<img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30)
|<img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05)
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|<img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36)
|<img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00)
|<img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59)
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
# Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these links to the community.
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* Contributing code
* Reporting issues
* Editing this wiki
* Getting involved in the community
* Donating money
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* NKRO, so you don't have to arpeggiate.
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno.
* Lighter keys, so it's less fatiguing.
Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page.
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines.
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* Emily Symbols, for typing symbols (including those not in the main Plover dictionary)
* Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free
* Plover Emoji, for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo
* Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo
* Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** Emily Symbols for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** stenodict a user-submitted collection of dictionaries
*** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site)
*** Emily's dictionaries
*** Antistic's dictionaries
*** Paul's dictionaries
*** Josiah's dictionaries
* For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made.
If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the discord server is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the glossary.
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue #72)
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44)
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
1a097f70bc0925f1f030aa28680dae1391b74277
132
131
2024-02-06T02:48:21Z
Rice
1
/* What does using Plover look like? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25)]
|<img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30)
|<img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05)
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|<img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36)
|<img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00)
|<img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59)
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and the world record is 360wpm. Audiobooks are narrated at around 150wpm (source from an Audible/iTunes book provider). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is Mirabai's article on the ergonomic argument for stenography. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the Plover discord, people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#how-long-does-it-take-to-learn|How long does it take to learn?]])
# Plover software, and suitable low cost hardware, didn't exist until recently.Will stenography be replaced with automatic voice recognition?
Mirabai Knight has done a presentation on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these links to the community.
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* Contributing code
* Reporting issues
* Editing this wiki
* Getting involved in the community
* Donating money
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The Beginner's Guide has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* NKRO, so you don't have to arpeggiate.
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to adapt a keyboard to work better for steno.
* Lighter keys, so it's less fatiguing.
Find more information in this section of the beginner's guide, or in the keyboards section of the hardware page.
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in her review of the Georgi that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other hobbyist steno machines.
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
Thomas Baart's post "Exploring Professional Stenotype Machines" goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the dictionary format for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a pull request for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* Emily Symbols, for typing symbols (including those not in the main Plover dictionary)
* Emily Modifiers, for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* Abby's Left Hand Modifiers, for typing with modifiers but keeping the right hand free
* Plover Emoji, for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of Art of Chording (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: Coding in Stenography, Quick Demo, Raw unedited steno coding demo
* Paul Fioravanti recreated DHH's rails 7 demo using steno: Rails 7: The Steno Demo
* Mirabai Knight, who started Plover, has a demo of her transcribing some of Plover's python source code
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** Emily Symbols for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** stenodict a user-submitted collection of dictionaries
*** Di's steno dictionaries, the creator of Typey Type (and whose programming dictionaries can be practiced on the site)
*** Emily's dictionaries
*** Antistic's dictionaries
*** Paul's dictionaries
*** Josiah's dictionaries
* For writing in snake/camel/pascal/etc. case: You can set typing modes, control capitalisation, or type symbols like <code>_</code>. There are also various plugins (see a list here) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#can-i-use-plover-for-normal-computer-use|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current chorded systems that have been made.
If you want to fingerspell with non-English letters, JorWat has a fingerspelling dictionary for diacritics (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The #multilingual channel on the discord server is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the 2021 community survey results to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a youtube video showing his progress over 5 months, where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the glossary.
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue #72)
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#is-plover-going-to-put-cat-software-companies-out-of-business|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
Steno Arcade is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
Plover Dictionary Update Demo<nowiki><br></nowiki> <nowiki><img src="https://img.youtube.com/vi/eSU5JlVXT1A/0.jpg" alt="Plover Dictionary Update Demo" /></nowiki><nowiki><br></nowiki> (click to view video — 1:44)
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the stenotype machine section in supported hardware for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
d629c5b2fc3260a593a45d12a6764b45bbcfccd8
133
132
2024-02-06T03:13:11Z
Rice
1
convert to media wiki format
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
8cd0b29257476af6635233ac4482c75cfba94f64
136
133
2024-02-06T03:24:50Z
Rice
1
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s (click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY (click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI (click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 (click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w (click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY (click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
cfd7804c8a7f173b6d0fd95f91ede04290a40715
137
136
2024-02-06T03:25:51Z
Rice
1
/* What does using Plover look like? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="http://cdn.akamai.steamstatic.com/steam/apps/256661129/movie.293x165.jpg?t=1456810705" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
cc12ad8c30555d26c831e63320ec79826166bdd2
138
137
2024-02-06T03:27:03Z
Rice
1
/* What is Steno Arcade? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community Plover discord], people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
725d8b6e1f6184bfb6e58d6a588e17f411db1b25
Setting up a Stentura Protege with Plover
0
29
135
2024-02-06T03:22:28Z
Rice
1
Created page with "Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover. [https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.] == What you need == You will need two cables: # '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins) * [http://a.co/9KWXIMP Amazon link] # '''Power Cable:''' USB 2.0 Cable - A-Male to B-Mal..."
wikitext
text/x-wiki
Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover.
[https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.]
== What you need ==
You will need two cables:
# '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins)
* [http://a.co/9KWXIMP Amazon link]
# '''Power Cable:''' USB 2.0 Cable - A-Male to B-Male. (The Stentura Protege can be powered either by USB or by a proprietary A/C charger. Your machine may come with a power chord. Mine did not.)
* [http://a.co/fQDbqWD Amazon link]
Note: Both of those Amazon links are for 6 foot cables. Make sure you get a cord long enough for your setup.
To use USB you need to install the <code>plover_stenograph_usb</code> plugin from the plugins manager and if you're on Windows you'll need to install the USB drivers from Stenograph.
== Serial Setup ==
'''Step 1.''' Connect power cord: Connect USB A-to-B cable to Stentura machine and computer or use the AC adapter. Your machine now has power. On the front of your Stentura is a row of 6 grey buttons. Press and hold the 1st one to turn it on.
'''Step 2.''' Connect data cord: Connect serial-to-USB cable to Stentura machine and computer.
[https://imgur.com/wGc9y4p Photo of both cables connected.]
'''Step 3.''' Download the latest version of Plover for your OS.
'''Step 4.''' Open Plover. Click the configure button. A new configuration window will open. Click the tab for machine. Select Stentura from the drop down menu. Go back to the window where you clicked the configure button. Click the radio button "enable" to enable output. Click the reload button (arrows going in a circle) until the dot turns green and it says "Stentura: Connected"
'''Step 5.''' Thanks to Plover, your Stentura can now type on your computer. Start learning Steno with Plover [https://www.openstenoproject.org/learn-plover/lesson-1-fingers-and-keys.html lessons] and [http://stenoknight.com/plover/haxeploverlearn/ interactive drills].
== Something went wrong ==
I ran into a problem because I was using an older Serial-to-USB cable and Windows was not able to load the correct Prolific drivers for the cable. I found a solution. [http://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error This site] explains the problem and gives you a link to download the right drivers.
== Stentura Protege Manual ==
[https://www.stenograph.com/content/files/documents/Stentura%20Protege%20User%20Guide.pdf Link to user guide PDF]
== Stop The Beeping ==
My Stentura Protege did not come with a battery. As long as it has power it runs just fine, but it makes an annoying little beep every minute. This is the low battery beep and it beeps even if you have no battery connected. I searched through the manual and did not see a way to disable this. But, I discovered two approaches to remove the beeping. I will explain how below. I was successful but please try this at your own risk.
'''What is making the beep?''' The beep is made by a small little speaker called a Piezo Electric Buzzer (cylinder with hole in it and plus sign). It is soldered to the circuit board and labeled "Alarm." (If you are curious, you can learn more about how these work in this [https://www.youtube.com/watch?v=77h1JhD9Syw video].)
'''Opening up the machine''' To see this beeping speaker you have to turn the machine over. Then, remove some screws. There are two sets of different sized screws. Make sure you keep track of which screws go where. (Hint: The smaller screws go with the metal washers. [https://imgur.com/P0RR4dy Photo].) Take the back cover off carefully because the battery wires are still attached to the case. [https://imgur.com/kTWBKbM Photo]. Locate the beeping speaker. It is labeled Alarm on the circuit board. [https://imgur.com/4kgY1kC Photo].
'''Option 1''': Mute the speaker by putting a small bit of tape over the hole next to the plus sign shown in this [https://imgur.com/4kgY1kC photo]. I used masking tape, but you might want to try experimenting with other types of tapes. This will lower the volume a lot and is non-destructive.
'''Option 2''': Permanently remove the ability of your stenograph to make sounds. This will destructively remove all capabilities of your machine to make beeping sounds. Make sure you really want to go in this direction before moving forward. If you plan on using this machine with a battery, the low battery beep could be useful. I plan on only using it plugged in and I don't plan on getting a battery. I successfully completed this modification, but please do this at your own risk.
The speaker, a Piezo Electric Buzzer makes sound by vibrating a ceramic plate. This can be carefully broken. I used a screw. [https://imgur.com/a/BRrsZ Photo]. Place it into the hole and gently twist. [https://imgur.com/a/mQI5H Photo]. You can plug in the machine again to test if you have successfully disabled the speaker. If you no longer hear the chirp then you have been successful.
Alt option: I did not do this, but it should be possible to desolder the Piezo Electric Buzzer from the board. Since I have not done this I can not confirm that this would be without side effects.
cde02ae53339ea4adeb57d53a27f79962970c65f
Glossary
0
16
139
88
2024-02-06T03:31:53Z
Rice
1
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
ba4b43d30dd5cd4ee045b20f10145e40f7113661
Using Anki for Learning Stenography
0
30
140
2024-02-06T03:47:28Z
Rice
1
Created page with "<markdown> 1. [What is Anki](#what-is-anki) 2. [Setting up Anki](#setting-up-anki) 3. [Making your own deck](#making-your-own-deck) 1. [Custom Fields](#custom-fields) 2. [Custom Cards](#custom-cards) 4. [Pre-made Decks](#pre-made-decks) 5. [Useful Anki Add-ons](#useful-anki-add-ons) 6. [Useful Plover Extensions](#useful-plover-extensions) ## What is Anki Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will s..."
wikitext
text/x-wiki
<markdown>
1. [What is Anki](#what-is-anki)
2. [Setting up Anki](#setting-up-anki)
3. [Making your own deck](#making-your-own-deck)
1. [Custom Fields](#custom-fields)
2. [Custom Cards](#custom-cards)
4. [Pre-made Decks](#pre-made-decks)
5. [Useful Anki Add-ons](#useful-anki-add-ons)
6. [Useful Plover Extensions](#useful-plover-extensions)
## What is Anki
Anki is a flashcard program that uses spaced repetition. The basic idea is that
if the card is easy you will see it less often, and if the card is hard you will
see it more often. Anki does not grade you automatically — you have full
control.
It can be useful for learning many things, and for steno people have used it
for memorising briefs and theory rules.
## Setting up Anki
1. Download from here: https://apps.ankiweb.net/
2. [Make your own deck](#making-your-own-deck) or use a [pre-made deck](#pre-made-decks)
## Making your own deck
Making your own deck allows you to have greater control over the cards (e.g.
what briefs)
The most basic way is to use the default deck and add cards to it. "Front" and
"Back" can be whatever you want, though most people put the translation on the
front and the steno stroke on the back.
### Custom Fields
Instead of just "Front" and "Back", you might want more fields like "Pseudo
Steno", "Stroke Diagram", "Notes" etc.
1. [Add a new note type](https://docs.ankiweb.net/editing.html#adding-a-note-type)
so that it won't interfere with anything else you might use Anki for
2. [Customise the fields](https://docs.ankiweb.net/editing.html#customizing-fields)
and add whatever you want
3. Add the new fields to the card template (see [custom cards](#custom-cards))
### Custom Cards
The default cards have the "Front" field, and when you answer it shows the
"Back" field, as well as a reverse card. If you want to show more fields, you'll
have to customise your card.
See the [anki docs here](https://docs.ankiweb.net/templates/intro.html),
including the next few pages, for how to do this.
Particular things that are useful for steno are:
- [Text to speech](https://docs.ankiweb.net/templates/fields.html#text-to-speech)
```
{{tts en_US:Front}}
```
Read out the text of the card, which is useful if you want to practice from
dictation. You can also use the [AwesomeTTS](https://ankiweb.net/shared/info/1436550454)
add-on for more voices.
- [Field Styling](https://docs.ankiweb.net/templates/styling.html#field-styling)
in the card:
```
<span class="diagram">{{Strokes}}</span>
```
in the styling:
```css
.diagram {
font-family: "Stenodisplay Classic"
}
```
There are lots of ways you can style your fields, like making the notes smaller
or colour coding your fields.
The example here uses [Kaoffie's Steno
Font](https://github.com/Kaoffie/steno_font), which uses a font for the steno
strokes to make it into a stroke diagram. You may want to [install the
font](https://docs.ankiweb.net/templates/styling.html#installing-fonts) into
Anki if you can't install fonts on your computer or if you want a portable Anki
deck.
- [Typing input](https://docs.ankiweb.net/templates/fields.html#checking-your-answer)
```
{{type:Back}}
````
Type out the field and when you turn the card over it will color code any
differences. Some people like to check the translation field, some people like
to turn off their dictionaries and check for the strokes.
You might want a
separate field for checking, since you may want prefix/suffix cards like
"{^ing}" but what you type out is actually "ing". Anki does not use this to pick
the rating of the card.
It is also possible to hide the text you are typing by adding the following to
your styling. This might be useful if you want to focus on trusting your muscle
memory.
```css
input[type=text] {
/* options are disc, circle, square, none */
-webkit-text-security: disc;
}
```
## Pre-made Decks
- [rchern/steno-anki](https://github.com/rchern/steno-anki)
- [Learn Plover!](https://www.openstenoproject.org/learn-plover/)
lessons
- Top 10K Words
- Emily's [Symbols](https://github.com/EPLHREU/emily-symbols) and [Modifiers](https://github.com/EPLHREU/emily-modifiers) dictionaries
- Other community-contributed shared decks
- Script to generate cards from text file
- [jladdjr/anki-decks](https://github.com/jladdjr/anki-decks)
- Top 10,000 Project Gutenberg words
- Basic sounds
- [Steno order and Phonetic strokes](https://ankiweb.net/shared/info/14548087)
- A small deck with cards on steno order and phonetic strokes
- [percidae/Anki_Plover](https://github.com/percidae/Anki_Plover/releases/)
- Complete plover dictionary
## Useful Anki Add-ons
[Anki Add-ons](https://docs.ankiweb.net/addons.html) are third party
extensions that add features to anki. To install them, go to Tools -> Add-ons
-> Get Add-ons.
- [Automatic Scoring](https://ankiweb.net/shared/info/1765221856)
- Automatically selects the difficulty of the card based on how long it took
to answer it
- You still have to press "enter" to confirm, so you still have full control
- You may want to adjust the default time to something different. You can
[show the answer timer](https://docs.ankiweb.net/deck-options.html#general)
and look at your [answer button graph](https://docs.ankiweb.net/stats.html#the-graphs)
to get an idea of what a reasonable time might be.
- Pairs well with [Advanced Review Bottom Bar](https://ankiweb.net/shared/info/1136455830)
which makes it easier to see which button has been pre-selected.
- [Anki Connect](https://ankiweb.net/shared/info/2055492159)
- Needed for some [useful plover extensions](#useful-plover-extensions)
- [Find Missing Words](https://ankiweb.net/shared/info/754868802)
- Paste in a block of text and this will help you find words you don't have
cards for
- [Anki Simulator](https://ankiweb.net/shared/info/817108664)
- Simulates your reviews over time. Useful for choosing settings (e.g. number
of new cards a day) that won't overwhelm you. (You can see how long you take
per card that day in the Stats window or below the list of decks, and use this
to see how many repetitions you want)
- [Persistent Editor](https://ankiweb.net/shared/info/1686259334) (doesn't work with latest Anki version)
- Keeps the editing window open while reviewing (but hides the current card
until you've answered it). Useful if you are using a pre-made deck and
prefer different briefs to the ones that are there.
- [Mini Format Pack](https://ankiweb.net/shared/info/295889520)
- Gives you more formatting options in the menu. Useful for making lists of
alternative strokes, or other formatting
- [AwesomeTTS](https://ankiweb.net/shared/info/1436550454)
- Gives you access to a range of TTS voices and human recorded voices (Forvo).
- [Copy selection field](https://github.com/antistic/anki-copy-selection-field)
- Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type.
## Useful Plover Extensions
- [Plover Cards](https://github.com/antistic/plover_cards)
- See previously typed words/phrases, sorted by various properties (e.g. last
used, most used), choose your preferred stroke and add them into Anki.
- Command to quickly bring up the last X words you typed and their
suggestions in an Anki "Add Card" window
- Requires [Anki Connect](https://ankiweb.net/shared/info/2055492159)
- [Spectra Lexer](https://github.com/fourshade/spectra_lexer)
- Analyzes strokes and generates stroke diagrams (click save). Useful for
having stroke diagrams which explain the stroke.
</markdown>
27137f9facdfed35a6688c48cd37b00711e21ab2
Beginner's Guide
0
4
141
105
2024-02-06T04:00:35Z
Aerick
9
/* Connect a compatible keyboard or stenography machine */
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
c4b8406d8a668d97d03aa784dac1e9457eec739f
147
141
2024-02-11T00:18:50Z
Aerick
9
Add instructions for testing NKRO
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
0bc9b9244760fabef4981fcacdaeb3aacd2994e1
Top 100 Words in Plover's Dictionary
0
31
142
2024-02-06T04:00:57Z
Rice
1
Created page with "<markdown> What they are, and why they are stroked like that. ## Introduction Fun fact: The top 100 words in the English language make up about 50% of all written material. When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to: - Avoiding [word boundary errors](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary) - Eas..."
wikitext
text/x-wiki
<markdown>
What they are, and why they are stroked like that.
## Introduction
Fun fact: The top 100 words in the English language make up about 50% of all written material.
When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to:
- Avoiding [word boundary errors](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary)
- Ease of stroking
## The List
### 1. the
`-T`
The most common word in the English language is reserved to just one key, right-hand `-T`. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: `SKP-T` for "and the".
### 2. be
`-B`
Right-hand `-B`. The "B" key in Plover just happens to be the "be" key. How convenient! Writing out "be" like `PWE` is the word part "be^". For example: "beware" or "belated". And the phonetic `PWAOE` is "bee"!
### 3. to
`TO`
Written out by spelling, `TO`. This is easy to hit and free of conflicts.
Warning: `O` for "to" in the default dictionary is a misstroke. It is not free from word boundaries.
### 4. of
`-F`
Right-hand `-F`. This is a simple one key stroke, and it frees up `OF` to be used for "off".
### 5. and
`SKP-`
`SKP-`. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like `SKPU` for "and you".
### 6. a
`AEU`
`A` is used as a prefix for words like "affix" or "arrive". The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted.
### 7. in
`TPH`
`TPH` is just the left-hand `N`. This combination frees up `EUPB` to be used for the "in^" prefix, like in
"indoors". Also good for phrases, such as `TPH-T` for "in the".
### 8. that
`THA`
We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: `THAR` for "that are", `THAS` for "that is".
### 9. have
`SR-`
This is the left-hand `V`. The phonetic version of this would be `HA*F` which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like `SR-T` for "have the".
`HAF` and `HA*F` get mapped to "half" and "1/2" in the default dictionary, respectively.
### 10. I
`EU` (`I`)
This is a non-phonetic stroke to give space for "eye". It's easy to hit and fits in some phrases, such as `SKPEU` for "and I". Note that, in some cases, you will use the `AOEU` cluster for I, such as in "I'll" (`AOEUL`) and "I'm" (`AOEUPL`) because the shorter versions are used for other things, in this case "ill" and the word beginning "im^".
### 11. it
`T-`
This is easy to hit and on the left hand for beginning phrases such as `TWAS` for "it was". Same pattern as for "in" and "if".
### 12. for
`TP-R` (F-R).
This drops the vowel to save effort for such a common word. If you want to use "for^" the prefix, then use `FAUR`. For example, forgone is `FAUR/TKPWOPB`.
### 13. not
`TPHOT`
### 14. on
`OPB`
### 15. with
`W-`
This is another easy to use single key stroke that can begin phrases like `WOUR` for "with our" and `W-T` for "with the".
### 16. he
`HE`
This is recommended over the `E`-only version for most cases, but depending on the phrase or word you might need `E` (`SKPE`: and he), `HE` (`HEBGD`: he could), and `HAOE` (`HAO*EL`: he'll)
### 17. as
`AS` (spelling) or `AZ` (phonetic).
### 18. you
`U`
The `U` key is used for "you". Can be used in phrases such as `SKPU` for "and you".
### 19. do
`TKO` (spelling).
Don't drop the vowel, because `TK-` alone is used for "did".
### 20. at
`AT`
### 21. this
`TH`
"This" is a special case, as it's basically set to `TH` for convenience and to open up the opportunity for several other briefs. For example, `THEU` is used for "think", and `THEUS` follows as "thinks".
Also works in phrases: `TH-FS` for "this was"
### 22. but
`PWUT` or `PWU`.
Mirabai uses `PWUT` as "but" and that is okay, but you can safely remap `PWUT` to "but the" if you want to use `PWU` as "but" exclusively.
### 23. his
`HEUS` (spelling), `HEUZ` (phonetic)
### 24. by
`PWEU`
This is a non-phonetic mapping to make room for `PWAOEU`: "buy". Add an asterisk to "by" and get the word beginning "bi^", add an asterisk to "buy" and get "bye".
### 25. from
`TPR-` (`FR-`).
This is similar to "for" (`TP-R`), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up "from" to phrases, like in `TPRUS` for "from us" and `TPR-T` for "from the" and `TPREUPLT` for "from time to time".
### 26. they
`THE`
Since "the" is stroked with just `-T`, we can place "they" in this stroke. It's important not to use `THAEU` to avoid potential conflict when we get to "they're" and "their".
### 27. we
`WE` (spelling) or `WAOE` (phonetic)
### 28. say
`SAEU` (phonetic).
Advanced: Also present as a right-hand only shortcut as `-BZ`, such as `THEBZ` for "they say". Get the past tense with `-BS` such as `THEBS` for "they said".
### 29. her
`HER`
### 30. she
`SHE` (spelling) or `SHAOE` (phonetic)
### 31. or
`OR`.
The phonetic version is given instead to "other" (`OER`).
### 32. an
`APB`
### 33. will
`HR-`
Left-hand L. Useful for phrases, such as `HR-B` for "will be" and `HRU` for "will you".
### 34. my
`PHEU` or `PHAOEU`.
We break phonetic convention to offer an easier to hit stroke.
### 35. one
`WUPB` (phonetic)
### 36. all
`AUL` (phonetic).
This vowel is common in the Plover dictionary, such as in `WAUL` (wall) and `PWAUL` (ball).
### 37. would
`WO`.
Left-hand-only brief is useful for phrases: `WOB` for "would be" and `WOU` for "would you".
### 38. there
`THR-`
This brief is used to avoid conflict with `THER` for "they're" and `THAEUR` for "their".
### 39. their
`THAEUR` (phonetic).
The homophone "they're" is stroked with `THER` which is the brief `THE` for "they" with `-R` added on.
### 40. what
`WHA`
Similar to `THA` for "that", `WHAT` is "what the".
### 41. so
`SO` (spelling)
### 42. up
`UP`
Use `AUP` for the word beginning "up^" like `AUP/WARDZ` for "upwards".
### 43. out
`OUT`
Use `AOUT` for the word beginning "out^" like `AOUT/SPOEBG/*EN` for "outspoken" or `AOUT/RAEUPBLG` for "outrage".
### 44. if
`TP-`
The bare left F is used for "if". Good as a phrase beginner, such as `TP-T` for "if the". Same pattern as "it" and "in".
### 45. about
`PW-`
The left-hand B is used for "about" as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: `PW-T` for "about the".
### 46. who
`WHO` (spelling).
We can't use `HAOU` (hue) or `HAO` (hoo).
### 47. get
`TKPWET` or `TKPW-T`
### 48. which
`WEU`. Just a brief.
### 49. go
`TKPWO` (spelling), `TKPWOE` (phonetic), or just `TKPW`.
### 50. me
`PHE` (spelling), `PHAOE` (phonetic).
As with many of these common words, being less strict on the vowel gives your fingers a potential break.
### 51. when
`WH` (brief) or `WHEPB` (spelling)
### 52. make
`PHAEUBG` (`MAIK`) (phonetic)
### 53. can
The left-hand `K-` only, useful for phrases. `K-B` (can be).
### 54. like
`HRAOEUBG` (phonetic)
### 55. time
`TAOEUPL` (phonetic)
### 56. no
`TPHO` (spelling).
The phonetic version is saved for "know".
### 57. just
`SKWRUFT`
Remember that `-F` is sometimes used for S.
### 58. him
`HEUPL`
### 59. know
`TPHOE` (phonetic)
### 60. take
`TAEUBG` (phonetic)
### 61. people
`PAOEPL`
In this case `-PL` is used for the "pl" sound instead of `-M`.
### 62. into
`TPHAO`
`TPH-` is "in", and `AO` is sometimes used for `oo` which sounds liked the vowel in "into". Can't use `TPHAOU` as it is being used by "knew".
### 63. year
`KWRAOER` (phonetic)
### 64. your
`KWROUR` (spelling).
Don't use `KWRUR` as that's the word ending `^ur` like in `KHROES/KWRUR` (closure).
### 65. good
`TKPWAOD`
### 66. some
`SOPL`
As a word beginning, `S-` and `SPH-` are used: for example, `SPH-PB` for "someone" and `S-G` for "something".
### 67. could
`KO`
Brief like `WO` for "would".
### 68. them
`THEPL`
### 69. see
`SAOE`
### 70. other
`OER`
Shows up as a word part, like in `TPHOER` for "another".
### 71. than
`THAPB` (spelling)
### 72. then
`THEPB` (spelling)
### 73. now
`TPHOU`
### 74. look
`HRAOBG`
### 75. only
`OEPBL`
In Plover's dictionary, `E` is often added to strokes to make them end with an "ee" sound. `OEPBL` can be thought of as "onl/ee". Lots of briefs use this, such as `KRAER` for "contrary" and `TPAEPL` for "family".
### 76. come
`KOPL`
### 77. its
`EUTS`
`T-S` is used for "it's".
### 78. over
`OEFR`
Emphasizing the tense-O sound to contrast with `OFR` for "offer". To use as a prefix, use `AUFR`, such as `AUFR/TKOPB` for "overdone".
### 79. think
`THEU` (brief), with a whole family: `THEUS` for "thinks", `THEUG` for "thinking".
### 80. also
`HR-S` (brief)
### 81. back
`PWABG`
### 82. after
`AF`
`AFT` is a misstroke entry which you could consider remapping to "aft" or "after the". To use as a prefix, use `AFR`, such as `AFR/TAEUFT` for "aftertaste".
### 83. use
`AOUS` or `AOUZ`
### 84. two
`TWO` (spelling)
### 85. how
`HOU`
### 86. our
`OUR`
### 87. work
`WORBG`
### 88. first
`TPEURS`
This brief drops the "t" sound for comfort.
### 89. well
`WEL`
### 90. way
`WAEU`
### 91. even
`AOEPB` or `AOEFPB`
Dropping the -F makes this stroke easier to hit.
### 92. new
`TPHU`
Briefed to avoid conflict with `TPHAOU` for "knew".
### 93. want
`WAPBT`
### 94. because
`PWAUS` or `PWAUZ` (briefs)
### 95. any
`TPHEU` (brief)
### 96. these
`THEZ` (brief) or `THAOES`/`THAOEZ` (phonetic).
The brief is much easier to hit.
### 97. give
`TKPWEUF`
No need for an asterisk, which is often the case with common words in the Plover dictionary.
### 98. day
`TKAEU` (phonetic)
### 99. most
`PHOFT`, `PHOEFT`, `PHO*ES`, or `PHO*S`.
Go with the option you like most.
### 100. us
`US`
</markdown>
5dc1d9aa127e31d0214e510044b4227d494a2fdd
Misleading Strokes in Plover's Dictionary
0
32
143
2024-02-06T04:01:42Z
Rice
1
Created page with "<markdown> The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [word boundaries](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary). ### And The best practice for "and": * Use `SKP` ✓ This was chosen arbitrarily, because it is comfortable and there is little chanc..."
wikitext
text/x-wiki
<markdown>
The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [word boundaries](https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary).
### And
The best practice for "and":
* Use `SKP` ✓
This was chosen arbitrarily, because it is comfortable and there is little chance of a word boundary issue. "and" is a common word ending, so stenographers find it easy to remember to stroke `SKP`.
`SKP` is also allows the use of phrases like `SKPU → and you` and `SKPEU → and I`.
There are some other strokes in the dictionary for "and". However, they are only to serve as a phonetic alternative when you are writing under pressure, and you can't remember `SKP`.
### Con- words
In Plover's theory, the best practice for con- words is:
* Use `KAUPB` to start words beginning with con. ✓
* Only use `KOPB` for the word "con".
However, when you look up a con word in Plover, it will only return misstrokes that contain the `KOPB` stroke. The reason for this is because the con- prefix doesn't require a dictionary entry.
For example, for the word "conquer":
* Use `KAUPB/KER` ✓
* Do not use `KOPB/KER` ✘
Other words are not easy to write phonetically because they are to be briefed. For example: `T-PB for "continue"`.
### Hyphen (-)
The best practice for "-":
* `H-PB` ✓
Why `H-PB`? The reason is that `H-PB` is `H-N` in pseudo-steno, which short for hyphen.
There are a set of misstrokes that use `H-B` instead. These are OK to use.
### Was
The best practice for "was":
* `WAS` ✓ or
* `WAZ`. ✓
The default dictionary has `WA → was`, which is most of the time all right. However it can conflict in some cases. For example: `WA/TKPWOPB → wagon (not "was gone")` and `WA/TPHA/SA → wanna sa (not "was NASA")`.
### Your
The best practice for "your":
* Use`KWROUR` ✓
* Do not use `KWRUR` ✘
This is because `KWRUR` is a word ending. For example: `KHROES/KWRUR → closure` versus `KHROES/KWROUR → close your`.
### Period (.)
The best practice for ".":
* `TP-PL` ✓ or
* `-FPLT` ✓
The other strokes `-P` and `-PL` can be used, but there will be conflicts. For example, `WEUPL/-P` is "wimp" rather than "women." Similarly, `HEL` is "hell" but `HEL/PL` is "helm".
</markdown>
2e11634fb085950bb564bf706fe443bcf63a128e
Learning stenography
0
17
144
89
2024-02-06T04:10:31Z
Rice
1
wikitext
text/x-wiki
== Suggested Learning Route ==
<blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote>
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well).
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Textbooks ==
These sites aim to teach you steno theory, from the layout to the terminology to the strokes.
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out Plugins for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website with a stenography world and public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
3d7cfb997cb729499a099de23b37bb6c06f0e2ea
155
144
2024-02-12T03:15:24Z
Aerick
9
remove reference to now defunct keyma.sh steno world
wikitext
text/x-wiki
== Suggested Learning Route ==
<blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote>
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well).
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Textbooks ==
These sites aim to teach you steno theory, from the layout to the terminology to the strokes.
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out Plugins for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
ef443bd57e6add21f4c4010d2c1171b534914d5c
Brief Ideas
0
18
145
90
2024-02-06T04:11:34Z
Rice
1
wikitext
text/x-wiki
Learn Plover! is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary.
<img src="http://qwertysteno.com/Images/steno-keyboard1.gif">
== In the Main Dictionary ==
You can start using these patterns today!
=== <code>SPW-</code> for int- and ent- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU">
This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in Learn Plover. Examples:
* <code>SPWEPBLGT</code> for "intelligent".
* <code>SPWRABGT</code> for "interact".
* <code>SPWER</code> for "enter".
* <code>SPWAOEURL</code> for "entirely".
=== <code>-FRP</code> for -mp ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY">
Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp.
Common uses of this are to add -mpl or -mbl to the end of a stroke:
* <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am".
* <code>EUFRP</code> for "imp"
=== <code>-FP</code> and <code>-AOUFP</code> for -ture ===
<img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594">
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c">
<code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich).
A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>:
* <code>TPHAEUFP</code> for "nature"
* <code>KRAOEFP</code> for "creature"
* <code>KAOUFP</code> for "culture"
* <code>TPAOEFP</code> for "feature"
* <code>P*EUFP</code> for "picture"
* <code>STRAOUFP</code> for "structure"
* <code>SKAOUFP</code> for "sculpture"
* <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture"
== Non-Plover Theory Ideas ==
You will need to define new strokes in your dictionary with these ideas.
=== <code>SKP-</code> for ex- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE">
The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain".
The rules for which one to use depend on the consonant following the ex-. If you don't like this, you can use <code>SKP-</code> for a leading ex-:
* <code>SKPRAGT</code> for "extract".
* <code>SKPERPBL</code> for "external".
* <code>SKPHRAEUPB</code> for "explain".
Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example:
* <code>SKPEBG</code> for "and he can"
* <code>SKPALS</code> for "and also".
If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>.
=== <code>KPW-</code> for im- and em- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s">
Examples:
* <code>KPWRES</code> for "impress".
=== <code>-FR</code> for -m ===
<img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc">
Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea:
If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>.
For example:
* <code>KAFRL</code> for "camel"
[[Category:Stenography]]
abbdb31f67c02b1377bbcad3d11374832ee517f8
146
145
2024-02-06T04:13:53Z
Rice
1
wikitext
text/x-wiki
[https://www.openstenoproject.org/learn-plover/ Learn Plover!] is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary.
== In the Main Dictionary ==
You can start using these patterns today!
=== <code>SPW-</code> for int- and ent- ===
This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in [https://www.openstenoproject.org/learn-plover/ Learn Plover.] Examples:
* <code>SPWEPBLGT</code> for "intelligent".
* <code>SPWRABGT</code> for "interact".
* <code>SPWER</code> for "enter".
* <code>SPWAOEURL</code> for "entirely".
=== <code>-FRP</code> for -mp ===
Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp.
Common uses of this are to add -mpl or -mbl to the end of a stroke:
* <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am".
* <code>EUFRP</code> for "imp"
=== <code>-FP</code> and <code>-AOUFP</code> for -ture ===
<code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich).
A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>:
* <code>TPHAEUFP</code> for "nature"
* <code>KRAOEFP</code> for "creature"
* <code>KAOUFP</code> for "culture"
* <code>TPAOEFP</code> for "feature"
* <code>P*EUFP</code> for "picture"
* <code>STRAOUFP</code> for "structure"
* <code>SKAOUFP</code> for "sculpture"
* <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture"
== Non-Plover Theory Ideas ==
You will need to define new strokes in your dictionary with these ideas.
=== <code>SKP-</code> for ex- ===
The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain".
The rules for which one to use [https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0 depend on the consonant following the ex-]. If you don't like this, you can use <code>SKP-</code> for a leading ex-:
* <code>SKPRAGT</code> for "extract".
* <code>SKPERPBL</code> for "external".
* <code>SKPHRAEUPB</code> for "explain".
Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example:
* <code>SKPEBG</code> for "and he can"
* <code>SKPALS</code> for "and also".
If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>.
=== <code>KPW-</code> for im- and em- ===
Examples:
* <code>KPWRES</code> for "impress".
=== <code>-FR</code> for -m ===
Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea:
If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>.
For example:
* <code>KAFRL</code> for "camel"
[[Category:Stenography]]
c89405f44458456c024c0a5adb7602245fce7045
File:Downloading-other-versions-gif.gif
6
33
148
2024-02-11T00:22:06Z
Aerick
9
wikitext
text/x-wiki
GIF image showing to click on assets in order to download other Plover versions.
49fdfdb5d19c1ecab83bb039aed38f54864077e5
Steno layouts and supported languages
0
19
150
91
2024-02-11T17:37:07Z
Rice
1
started converting from github md to mw format
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Languages ==
* English:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#possum-palantype|Palantype]]
** [[Steno Layouts and Supported Languages#michela|Michela]]
** [[Steno Layouts and Supported Languages#phenrsteno|Phenrsteno]]
** [[Steno Layouts and Supported Languages#velotype|Velotype]]
** [[Steno Layouts and Supported Languages#jackdaw|Jackdaw]]
** [[Steno Layouts and Supported Languages#kinglet|Kinglet]]
* Chinese, Mandarin (國語 / 普通话):
** [[Steno Layouts and Supported Languages#yawei|Yawei]]
** [[Steno Layouts and Supported Languages#exun|EXun]]
** [[Steno Layouts and Supported Languages#suoheng|Suoheng]]
* Chinese, Cantonese (粵語):
** [[Steno Layouts and Supported Languages#sansan|SanSan]]
** [[Steno Layouts and Supported Languages#maajik|MaaJik]]
* Czech / Čeština:
** [[Steno Layouts and Supported Languages#czech-stenograph|Stenotype]]
** [[Steno Layouts and Supported Languages#trillo|Trillo]]
** [[Steno Layouts and Supported Languages#plover-czech|Plover Czech]]
* Danish / Dansk: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Dutch / Nederlands:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#velotype|Velotype]]
* Finnish / Suomi:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#especias|Especias]]
* French / Français:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#grandjean|Grandjean]]
* German / Deutsch:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#possum-palantype|Palantype]]
** [[Steno Layouts and Supported Languages#german-syllatype|Syllatype]]
* Greek / Ελληνικά: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Hebrew / עברית: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Hindi / हिन्दी: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Italian / Italiano:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#michela|Michela]]
* Japanese / 日本語:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#sokutaipu|Sokutaipu]]
** [[Steno Layouts and Supported Languages#stenoword|StenoWord]]
** [[Steno Layouts and Supported Languages#hachidori|Hachidori]]
** [[Steno Layouts and Supported Languages#frags-japanese-system|Frag]]
* Korean / 한국어:
** [[Steno Layouts and Supported Languages#korean-cas|CAS]]
** [[Steno Layouts and Supported Languages#sorizava|Sorizava]]
* Polish / Polski: [[Steno Layouts and Supported Languages#trillo|Trillo]]
* Portuguese / Português: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Russian / Русский:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#trillo|Trillo]]
* Slovak / Slovenčina: [[Steno Layouts and Supported Languages#trillo|Trillo]]
* Spanish / Español:
** [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
** [[Steno Layouts and Supported Languages#grandjean|Grandjean]]
** [[Steno Layouts and Supported Languages#especias|Especias]]
* Swedish / Svenska: [[Steno Layouts and Supported Languages#possum-palantype|Palantype]]
* Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Turkish / Türkçe: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
* Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#stenotype-ireland|Stenotype]]
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|147k entries
|Learning Resources
|-
|🟢 '''Lapwing'''
|Aerick
|English
|Phonetic
|Built-in
|115k entries
|Learning Resources
|-
|🟡 '''Cocoa'''
|Kaoffie
|English
|Phonetic
|Built-in
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|4.2k entries
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|Vermoot
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires plover-python-dictionary
|Python Dictionary
|-
|🟢 '''Stanley's'''
|Stanley Sakai
|Spanish
|Phonetic
|Built-in
|12k entries
|-
|🟢 '''EO Variant'''
|Eliseo Ocampos
|Spanish
|Phonetic
|plover-spanish-system-eo-variant
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<nowiki><br></nowiki>Overview<nowiki><br></nowiki>Facebook Page
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|49k entries
|Textbook (in Finnish)
|-
|🟢 '''Aerick's'''
|Aerick
|Vietnamese
|Orthographic
|Built-in
|7k entries
|Learning Resources
|-
|🟢 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|<nowiki><code>plover-vi</code></nowiki>
|-
|🟡 '''Hindi Devanagari'''
|winston
|Hindi
|Phonetic
|N/A
|1,404 entries
|Home Page
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<nowiki><code>plover-portuguese</code></nowiki>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<nowiki><code>plover-german</code></nowiki>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|Martin Körner
|German
|Phonetic
|<nowiki><code>plover-regenpfeifer</code></nowiki>
|219k entries
|Dictionary generator
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|YAMERO
|German
|Orthographic
|<nowiki><code>plover-german-syllatype</code></nowiki>
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|Willem Sonke
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|<nowiki><code>plover-japanese-kana</code></nowiki>
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|Lars Rune Præstmark
|Danish
|Phonetic
|Built-in
|5k entries
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|<nowiki><code>plover-melani</code></nowiki>
|
|Stenolab
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|Noelia Ruiz Martínez
|Spanish
|Phonetic
|<nowiki><code>plover-spanish-mqd</code></nowiki>
|11k entries
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see this discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|<nowiki><code>plover-thsteno</code></nowiki>
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|Jade Geels
|Dutch
|Phonetic
|<nowiki><code>plover-dutch</code></nowiki>
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|Willem Sonke
|Dutch
|Phonetic
|<nowiki><code>plover-dutch</code></nowiki>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|<nowiki><code>plover-grandjean</code></nowiki>
|690k+ entries
|GitHub
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|Asociacion Española de Estenotipistas
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela plover-michela]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela plover-michela]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text plover-midi4text]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text plover-midi4text]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The Possum Palantype is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some STTRs worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|<nowiki><code>plover-palantype</code></nowiki>
|21k entries
|Learn Palantype
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<nowiki><code>plover-swedish-palantype</code></nowiki>
|87k entries
|Swedish Theory
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|<nowiki><code>plover-palantype-german</code></nowiki>
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|Tutorial
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|<nowiki><code>plover-russian-trillo</code></nowiki>
|15k entries
|Textbook (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|Textbook
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|Wikipedia
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|Sammi de Guzman, Samuel Lo
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|<nowiki><code>plover-maajik</code></nowiki>
|314k entries
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|Sammi de Guzman
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|Steno Explainers
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|Quisette C
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|<nowiki><code>plover-tcim</code></nowiki>
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by Korea Steno and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|<nowiki><code>plover-korean</code></nowiki> ("Korean Modern C")
|
|Theory documentation
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a company of the same name, is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in plover-korean but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|<nowiki><code>plover-korean</code></nowiki> ("Korean Modern S")
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda<nowiki><br></nowiki>Pure Kana
|<nowiki><code>plover-japanese-sokutaipu</code></nowiki>
|365k entries
|Kana table
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable<nowiki><br></nowiki>Pure Kana
|<nowiki><code>plover-japanese-stenoword</code></nowiki>
|2.6k entries
|Kana table
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda<nowiki><br></nowiki>Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|Kaoffie
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in Qweyboard by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|<nowiki><code>plover-syllabic-chording</code></nowiki>
|
|Official website
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<nowiki><code>plover-jackdaw-alt1</code></nowiki>
|
|Learn Plover! Jackdaw tutorial
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|Plover 2.5.8 modified for Kinglet
|
|Learn Plover! Kinglet tutorial
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|Gregory Chamberlain
|English
|Phonetic
|<nowiki><code>plover-phenrsteno</code></nowiki>
|15k entries
|Phenrsteno wiki
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|Ashlynn Anderson
|Czech
|Phonetic
|<nowiki><code>plover-czech</code></nowiki>
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|Lars Rune Præstmark
|Finnish
|Orthographic
|Built-in
|Dictionary
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|Lars Rune Præstmark
|Spanish
|Orthographic
|Built-in
|Dictionary
|}
[[Category:Stenography]]
b06a5c7d0030db07c22eb1a9aaf73c3c7e3d679c
151
150
2024-02-11T17:38:39Z
Rice
1
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|147k entries
|Learning Resources
|-
|🟢 '''Lapwing'''
|Aerick
|English
|Phonetic
|Built-in
|115k entries
|Learning Resources
|-
|🟡 '''Cocoa'''
|Kaoffie
|English
|Phonetic
|Built-in
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|4.2k entries
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|Vermoot
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires plover-python-dictionary
|Python Dictionary
|-
|🟢 '''Stanley's'''
|Stanley Sakai
|Spanish
|Phonetic
|Built-in
|12k entries
|-
|🟢 '''EO Variant'''
|Eliseo Ocampos
|Spanish
|Phonetic
|plover-spanish-system-eo-variant
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.<nowiki><br></nowiki>Overview<nowiki><br></nowiki>Facebook Page
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|49k entries
|Textbook (in Finnish)
|-
|🟢 '''Aerick's'''
|Aerick
|Vietnamese
|Orthographic
|Built-in
|7k entries
|Learning Resources
|-
|🟢 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|<nowiki><code>plover-vi</code></nowiki>
|-
|🟡 '''Hindi Devanagari'''
|winston
|Hindi
|Phonetic
|N/A
|1,404 entries
|Home Page
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<nowiki><code>plover-portuguese</code></nowiki>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<nowiki><code>plover-german</code></nowiki>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|Martin Körner
|German
|Phonetic
|<nowiki><code>plover-regenpfeifer</code></nowiki>
|219k entries
|Dictionary generator
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|YAMERO
|German
|Orthographic
|<nowiki><code>plover-german-syllatype</code></nowiki>
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|Willem Sonke
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|<nowiki><code>plover-japanese-kana</code></nowiki>
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|Lars Rune Præstmark
|Danish
|Phonetic
|Built-in
|5k entries
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|<nowiki><code>plover-melani</code></nowiki>
|
|Stenolab
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|Noelia Ruiz Martínez
|Spanish
|Phonetic
|<nowiki><code>plover-spanish-mqd</code></nowiki>
|11k entries
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see this discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|<nowiki><code>plover-thsteno</code></nowiki>
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|Jade Geels
|Dutch
|Phonetic
|<nowiki><code>plover-dutch</code></nowiki>
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|Willem Sonke
|Dutch
|Phonetic
|<nowiki><code>plover-dutch</code></nowiki>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|<nowiki><code>plover-grandjean</code></nowiki>
|690k+ entries
|GitHub
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|Asociacion Española de Estenotipistas
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela plover-michela]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela plover-michela]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text plover-midi4text]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text plover-midi4text]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The Possum Palantype is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some STTRs worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|<nowiki><code>plover-palantype</code></nowiki>
|21k entries
|Learn Palantype
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<nowiki><code>plover-swedish-palantype</code></nowiki>
|87k entries
|Swedish Theory
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|<nowiki><code>plover-palantype-german</code></nowiki>
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|Tutorial
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|<nowiki><code>plover-russian-trillo</code></nowiki>
|15k entries
|Textbook (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|Textbook
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|Wikipedia
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|Sammi de Guzman, Samuel Lo
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|<nowiki><code>plover-maajik</code></nowiki>
|314k entries
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|Sammi de Guzman
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|Steno Explainers
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|Quisette C
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|<nowiki><code>plover-tcim</code></nowiki>
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by Korea Steno and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|<nowiki><code>plover-korean</code></nowiki> ("Korean Modern C")
|
|Theory documentation
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a company of the same name, is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in plover-korean but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|<nowiki><code>plover-korean</code></nowiki> ("Korean Modern S")
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda<nowiki><br></nowiki>Pure Kana
|<nowiki><code>plover-japanese-sokutaipu</code></nowiki>
|365k entries
|Kana table
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable<nowiki><br></nowiki>Pure Kana
|<nowiki><code>plover-japanese-stenoword</code></nowiki>
|2.6k entries
|Kana table
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda<nowiki><br></nowiki>Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|Kaoffie
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in Qweyboard by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|<nowiki><code>plover-syllabic-chording</code></nowiki>
|
|Official website
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<nowiki><code>plover-jackdaw-alt1</code></nowiki>
|
|Learn Plover! Jackdaw tutorial
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|Plover 2.5.8 modified for Kinglet
|
|Learn Plover! Kinglet tutorial
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|Gregory Chamberlain
|English
|Phonetic
|<nowiki><code>plover-phenrsteno</code></nowiki>
|15k entries
|Phenrsteno wiki
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|Ashlynn Anderson
|Czech
|Phonetic
|<nowiki><code>plover-czech</code></nowiki>
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|Lars Rune Præstmark
|Finnish
|Orthographic
|Built-in
|Dictionary
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|Lars Rune Præstmark
|Spanish
|Orthographic
|Built-in
|Dictionary
|}
[[Category:Stenography]]
63363e05807a0d52dd3ecdaac876dd301cf8126a
152
151
2024-02-11T18:05:35Z
Rice
1
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Languages ==
* English:
** Stenotype
** Palantype
** Michela
** Phenrsteno
** Velotype
** Jackdaw
** Kinglet
* Chinese, Mandarin (國語 / 普通话):
** Yawei
** EXun
** Suoheng
* Chinese, Cantonese (粵語):
** SanSan
** MaaJik
* Czech / Čeština:
** Stenotype
** Trillo
** Plover Czech
* Danish / Dansk: Stenotype
* Dutch / Nederlands:
** Stenotype
** Velotype
* Finnish / Suomi:
** Stenotype
** Especias
* French / Français:
** Stenotype
** Grandjean
* German / Deutsch:
** Stenotype
** Palantype
** Syllatype
* Greek / Ελληνικά: Stenotype
* Hebrew / עברית: Stenotype
* Hindi / हिन्दी: Stenotype
* Italian / Italiano:
** Stenotype
** Michela
* Japanese / 日本語:
** Stenotype
** Sokutaipu
** StenoWord
** Hachidori
** Frag
* Korean / 한국어:
** CAS
** Sorizava
* Polish / Polski: Trillo
* Portuguese / Português: Stenotype
* Russian / Русский:
** Stenotype
** Trillo
* Slovak / Slovenčina: Trillo
* Spanish / Español:
** Stenotype
** Grandjean
** Especias
* Swedish / Svenska: Palantype
* Thai / ภาษาไทย: Stenotype
* Turkish / Türkçe: Stenotype
* Vietnamese / Tiếng Việt: Stenotype
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries]
|[[Learning Stenography|Learning Resources]]
|-
|🟢 '''Lapwing'''
|[https://github.com/aerickt Aerick]
|English
|Phonetic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries]
|[https://lapwing.aerick.ca/ Learning Resources]
|-
|🟡 '''Cocoa'''
|[https://github.com/Kaoffie Kaoffie]
|English
|Phonetic
|Built-in
|
|
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|[https://github.com/morinted/la_tao_dictionary 4.2k entries]
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|[https://github.com/Vermoot Vermoot]
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary]
|[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary]
|
|-
|🟢 '''Stanley's'''
|[https://github.com/stanographer Stanley Sakai]
|Spanish
|Phonetic
|Built-in
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries]
|
|-
|🟢 '''EO Variant'''
|[https://github.com/roskoff Eliseo Ocampos]
|Spanish
|Phonetic
|[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant]
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.
[https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview]
[https://www.facebook.com/stenocap Facebook Page]
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries]
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish)
|-
|🟢 '''Aerick's'''
|[https://github.com/aerickt Aerick]
|Vietnamese
|Orthographic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries]
|[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources]
|-
|🟢 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|[https://github.com/user202729/plover_vi <code>plover-vi</code>]
|
|
|-
|🟡 '''Hindi Devanagari'''
|[https://github.com/winstond/hind_plover_dictionary winston]
|Hindi
|Phonetic
|N/A
|[https://github.com/winstond/hind_plover_dictionary 1,404 entries]
|[https://github.com/winstond/hind_plover_dictionary Home Page]
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<code>[https://github.com/percidae/plover_german plover-german]</code>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|[https://github.com/mkrnr Martin Körner]
|German
|Phonetic
|[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>]
|219k entries
|[https://github.com/mkrnr/regenpfeifer Dictionary generator]
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|[https://github.com/YAMEROOOO YAMERO]
|German
|Orthographic
|[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype]
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)
Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|[https://github.com/Willem3141 Willem Sonke]
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>]
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Danish
|Phonetic
|Built-in
|[https://github.com/SeaLiteral/hjejleOrdbog 5k entries]
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>]
|
|[https://www.stenolab.it/ Stenolab]
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|[https://github.com/nvdaes Noelia Ruiz Martínez]
|Spanish
|Phonetic
|[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>]
|[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries]
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>]
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|[https://github.com/Jade-GG Jade Geels]
|Dutch
|Phonetic
|[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>]
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|[https://github.com/Willem3141 Willem Sonke]
|Dutch
|Phonetic
|<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>]
|[https://github.com/azizyemloul/plover-france-dict 690k+ entries]
|[https://github.com/azizyemloul/plover-france-dict GitHub]
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas]
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|[https://github.com/morinted/plover_palantype <code>plover-palantype</code>]
|21k entries
|[http://www.openstenoproject.org/palantype/ Learn Palantype]
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code>
|87k entries
|[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory]
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>]
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|[https://palantype.com/ Tutorial]
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>]
|15k entries
|[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook]
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia]
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>]
|[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries]
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|[https://github.com/sammdot Sammi de Guzman]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|[https://steno.sammdot.ca/explainers Steno Explainers]
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|[https://github.com/Quisette Quisette C]
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>]
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C")
|
|[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation]
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S")
|
|
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda
Pure Kana
|[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>]
|365k entries
|[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table]
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable
Pure Kana
|<code>plover-japanese-stenoword</code>
|2.6k entries
|[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table]
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda
Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|[https://github.com/Kaoffie Kaoffie]
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>]
|
|[https://www.velotype.com/en/homepage-eng/ Official website]
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code>
|
|[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial]
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet]
|
|[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial]
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|[https://github.com/chambln Gregory Chamberlain]
|English
|Phonetic
|[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>]
|15k entries
|[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki]
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|[https://github.com/lambdadog Ashlynn Anderson]
|Czech
|Phonetic
|[https://github.com/lambdadog/plover_czech <code>plover-czech</code>]
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Finnish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Spanish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
[[Category:Stenography]]
1fb088bb29df8e5b13629ac3415d40313e41a599
153
152
2024-02-11T18:19:52Z
Rice
1
/* Languages */
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Languages ==
* English:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]]
** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]]
* Chinese, Mandarin (國語 / 普通话):
** [[Steno Layouts and Supported Languages#Yawei|Yawei]]
** [[Steno Layouts and Supported Languages#EXun|EXun]]
** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]]
* Chinese, Cantonese (粵語):
** [[Steno Layouts and Supported Languages#SanSan|SanSan]]
** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]]
* Czech / Čeština:
** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]]
* Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Dutch / Nederlands:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
* Finnish / Suomi:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* French / Français:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
* German / Deutsch:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]]
* Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Italian / Italiano:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
* Japanese / 日本語:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]]
** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]]
** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]]
** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]]
* Korean / 한국어:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Korean CAS|CAS]]
** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]]
* Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Russian / Русский:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Spanish / Español:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
* Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries]
|[[Learning Stenography|Learning Resources]]
|-
|🟢 '''Lapwing'''
|[https://github.com/aerickt Aerick]
|English
|Phonetic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries]
|[https://lapwing.aerick.ca/ Learning Resources]
|-
|🟡 '''Cocoa'''
|[https://github.com/Kaoffie Kaoffie]
|English
|Phonetic
|Built-in
|
|
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|[https://github.com/morinted/la_tao_dictionary 4.2k entries]
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|[https://github.com/Vermoot Vermoot]
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary]
|[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary]
|
|-
|🟢 '''Stanley's'''
|[https://github.com/stanographer Stanley Sakai]
|Spanish
|Phonetic
|Built-in
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries]
|
|-
|🟢 '''EO Variant'''
|[https://github.com/roskoff Eliseo Ocampos]
|Spanish
|Phonetic
|[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant]
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.
[https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview]
[https://www.facebook.com/stenocap Facebook Page]
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries]
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish)
|-
|🟢 '''Aerick's'''
|[https://github.com/aerickt Aerick]
|Vietnamese
|Orthographic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries]
|[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources]
|-
|🟢 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|[https://github.com/user202729/plover_vi <code>plover-vi</code>]
|
|
|-
|🟡 '''Hindi Devanagari'''
|[https://github.com/winstond/hind_plover_dictionary winston]
|Hindi
|Phonetic
|N/A
|[https://github.com/winstond/hind_plover_dictionary 1,404 entries]
|[https://github.com/winstond/hind_plover_dictionary Home Page]
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<code>[https://github.com/percidae/plover_german plover-german]</code>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|[https://github.com/mkrnr Martin Körner]
|German
|Phonetic
|[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>]
|219k entries
|[https://github.com/mkrnr/regenpfeifer Dictionary generator]
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|[https://github.com/YAMEROOOO YAMERO]
|German
|Orthographic
|[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype]
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)
Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|[https://github.com/Willem3141 Willem Sonke]
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>]
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Danish
|Phonetic
|Built-in
|[https://github.com/SeaLiteral/hjejleOrdbog 5k entries]
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>]
|
|[https://www.stenolab.it/ Stenolab]
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|[https://github.com/nvdaes Noelia Ruiz Martínez]
|Spanish
|Phonetic
|[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>]
|[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries]
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>]
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|[https://github.com/Jade-GG Jade Geels]
|Dutch
|Phonetic
|[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>]
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|[https://github.com/Willem3141 Willem Sonke]
|Dutch
|Phonetic
|<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>]
|[https://github.com/azizyemloul/plover-france-dict 690k+ entries]
|[https://github.com/azizyemloul/plover-france-dict GitHub]
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas]
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|[https://github.com/morinted/plover_palantype <code>plover-palantype</code>]
|21k entries
|[http://www.openstenoproject.org/palantype/ Learn Palantype]
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code>
|87k entries
|[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory]
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>]
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|[https://palantype.com/ Tutorial]
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>]
|15k entries
|[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook]
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia]
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>]
|[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries]
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|[https://github.com/sammdot Sammi de Guzman]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|[https://steno.sammdot.ca/explainers Steno Explainers]
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|[https://github.com/Quisette Quisette C]
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>]
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C")
|
|[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation]
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S")
|
|
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda
Pure Kana
|[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>]
|365k entries
|[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table]
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable
Pure Kana
|<code>plover-japanese-stenoword</code>
|2.6k entries
|[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table]
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda
Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|[https://github.com/Kaoffie Kaoffie]
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>]
|
|[https://www.velotype.com/en/homepage-eng/ Official website]
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code>
|
|[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial]
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet]
|
|[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial]
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|[https://github.com/chambln Gregory Chamberlain]
|English
|Phonetic
|[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>]
|15k entries
|[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki]
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|[https://github.com/lambdadog Ashlynn Anderson]
|Czech
|Phonetic
|[https://github.com/lambdadog/plover_czech <code>plover-czech</code>]
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Finnish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Spanish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
[[Category:Stenography]]
376dd25e7cc667faef15d7702aab4efcffbe0b48
List of available steno dictionaries
0
20
154
92
2024-02-11T18:23:56Z
Rice
1
Convert to mw
wikitext
text/x-wiki
Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc.
In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below.
== Stenodict ==
You'll find many free, open source steno dictionaries at the [https://www.openstenoproject.org/stenodict/ Stenodict] website.
{| class="wikitable"
!Purpose
!Author
!Description
|-
|Arrows
|Ted Morin
|Symbolic arrows → → made easy
|-
|Cross Platform Movement
|Ted Morin
|Movement and selection across Mac, Windows, and Linux
|-
|Di’s Mac Movement
|Diana MacDonald
|Extensive Mac movement and selection
|-
|Di’s Vim Commands
|Diana MacDonald
|Vim and steno were made for each other
|-
|Emoji
|Ted Morin
|Complete Emoji dictionary 😃
|-
|General Command Line
|Diana MacDonald
|Briefs and entries for terminal users
|-
|Left Hand Modifier Keys
|Achim Siebert
|Left-hand keyboard shortcuts in only two strokes
|-
|Left-side Mac Movement
|Achim Siebert
|Left movement shortcuts with selection for Mac
|-
|Markdown
|Ted Morin
|Best markup language meets best text entry system
|-
|Pokémon
|Ted Morin
|First 151 Pokémon written with Plover theory
|-
|Spectacle
|Ted Morin
|Window management with Spectacle, the free application for OS X
|-
|UK Spellings
|Ted Morin
|Replace US spellings in Plover's default dictionary
|-
|Unspaced Punctuation
|Diana MacDonald
|Punctuation with all the spaces suppressed
|-
|Vim Captioning
|Mirabai Knight
|Useful realtime captioning commands for Vim
|}
== Stanley Sakai's Steno dictionaries ==
Stanley Sakai's repository on GitHub - [https://github.com/stanographer/steno-dictionaries Stanley's Steno Dictionaries]
{| class="wikitable"
!Language
!Description
|-
|braille.json
|A starter dictionary for steno-based Braille input.
|-
|smalldict.json
|Starter dictionary Mirabai gave Stan as a template (not actively updated or used).
|-
|stan-italiano.json
|Dictionary started when doing an Italian class. Not very developed.
|-
|stanespanol.json
|Main Spanish steno dictionary.
|-
|stanmain.json
|His main English dictionary.
|-
|stanplover.json
|Additional entries to correct formatting errors caused by RTF -> JSON conversion.
|}
== Diana MacDonald's repository ==
[https://github.com/dimonster/plover-dictionaries Diana MacDonald's dictionaries]. These include symbols, currency, smart punctuation, design, and coding dictionaries.
== Other dictionaries ==
* [https://github.com/EPLHREU/emily-symbols Emily's Symbol Dictionary] and [https://github.com/EPLHREU/emily-modifiers Emily's Modifier Dictionary]. The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts.
* [https://github.com/Jade-GG/plover_phrasing/ Jade's Phrasing Dictionary], a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke.
* [https://github.com/JorWat25/dictionaries/blob/main/british%20words.json JorWat's British Words], a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States".
== Dictionaries for non-English languages ==
{| class="wikitable"
!Language
!Author
|-
|[https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json Italian]
|Stanley Sakai
|-
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json Spanish]
|Stanley Sakai
|-
|[https://github.com/azizyemloul/plover-france-dict French]
|Aziz Yemloul
|-
|[https://github.com/winstond/hind_plover_dictionary Hindi हिन्दी]
|winston
|}
<blockquote>Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [[Steno Layouts and Supported Languages|steno layouts & supported languages page]].</blockquote>
== Commercial stenography dictionaries ==
Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [[Dictionary Format]] page for more information.
[[Category:Stenography]]
d208cd6c80f9f5ecdefcd19a3a38364cd1169c5f
The steno community
0
21
156
66
2024-02-12T16:03:31Z
Rice
1
wikitext
text/x-wiki
There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online.
== Open Steno Project ==
* [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief.
* [https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group]
* [https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] The Plover Google Group. Subscribe for updates and conversation.
* [https://github.com/openstenoproject/plover/discussions GitHub Discussions]
* Reddit: [http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover]
== General Stenography ==
* Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students]
* Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started.
** [https://twitter.com/morinted/lists/steno Steno List]
** [https://twitter.com/hashtag/stenolife?src=hash #stenolife]
65a3ea260e52c23d684286e06ae19cf1cff199d5
Learning stenography
0
17
157
155
2024-02-12T19:33:10Z
Rice
1
/* Plugins */
wikitext
text/x-wiki
== Suggested Learning Route ==
<blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote>
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''Start reading a [[Learning Stenography#Textbooks|textbook]].''' [https://www.artofchording.com/ The Art of Chording] seems to be more popular, but [https://www.openstenoproject.org/learn-plover/ Learn Plover!] is more complete (covering punctuation and numbers as well).
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Textbooks ==
These sites aim to teach you steno theory, from the layout to the terminology to the strokes.
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. However, do note that this theory is not default in the Plover app. Although based off of Plover theory, Lapwing offers more consistency and relies less heavily on memorization.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
276ec9d628fccf69318add7d794dd85495ced71c
File:Image.png
6
34
158
2024-02-12T19:35:49Z
Rice
1
wikitext
text/x-wiki
plover-plugins-manager
2e72e954002f7ea92553d732347d95b1ed1bf98d
File:Plover-dict-commands.png
6
35
159
2024-02-12T19:38:22Z
Rice
1
wikitext
text/x-wiki
shows plover-dict-commands in the plover-plugins-manager window
052b4ea1e3f48da968f357bbd9fb509d4ab03165
File:Plugins-security-risk.png
6
36
160
2024-02-12T19:39:54Z
Rice
1
wikitext
text/x-wiki
warning when installing plugins
353f5d35300d7f4dc3e91513be2dbfeeaae460b7
File:Plover dict commands-repo.png
6
37
161
2024-02-12T19:42:37Z
Rice
1
wikitext
text/x-wiki
plover_dict_commands repo on github
bb1e3998e40ba0fc60a16ba5537386940d5b8b59
File:Dialog after install plugin.png
6
38
162
2024-02-12T19:44:16Z
Rice
1
wikitext
text/x-wiki
dialog after install plugin
b8a7effad03a28e5cbb4c6c25c977848727c8fc2
File:Restart button after install plugin.png
6
39
163
2024-02-12T19:44:59Z
Rice
1
wikitext
text/x-wiki
Restart button after install plugin
08808c36b033092102472031045d95a9ebb23799
File:Configure-location.png
6
40
164
2024-02-12T19:47:13Z
Rice
1
wikitext
text/x-wiki
configure-location
0469ad22ee68f016b3c0f8641c77117cb396f204
File:Configure-plugins-menu.png
6
41
165
2024-02-12T19:49:01Z
Rice
1
wikitext
text/x-wiki
configure-plugins-menu
49b1b78d445595e0b0e875ecdab224e23fe43463
File:Add translation GUI plover.png
6
42
166
2024-02-12T19:50:26Z
Rice
1
wikitext
text/x-wiki
add translation GUI plover
3a05c65cab4d2a1a04a735f04e738e2bcd348004
File:Enabled dictionaries in GUI.png
6
43
167
2024-02-12T19:52:43Z
Rice
1
wikitext
text/x-wiki
enabled dictionaries in GUI
a7967088d29dc7020f8b1a68cbdb65e31d21b510
File:Plover GUI list of dictionaries after toggling di-briefs off.png
6
44
168
2024-02-12T19:54:33Z
Rice
1
wikitext
text/x-wiki
plover GUI list of dictionaries after toggling di-briefs off
582f012985537b07f7433e1e6b8e58238a6fcb44
Plugins
0
45
169
2024-02-12T20:03:21Z
Rice
1
Add plugins page
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
== An example of installing a plugin ==
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
c01cbc7d425df5d8d28d0728a765a32f9d54366e
173
169
2024-02-12T20:14:56Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
==== Via the built-in Plugins Manager (recommended) ====
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager: [[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update": [[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself. [[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one: [[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this: [[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure": [[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it: [[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>: [[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries: [[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary: [[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
==== Manually Installing Plugins ====
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
===== Find the plugin on PyPI or as a git repo =====
====== Plugins on PyPI ======
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
====== Plugins not on PyPI ======
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
===== Install the plugin =====
See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name):
<code>plover -s plover_plugins install plugin-name</code>
If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL):
<code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code>
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
cdd1d8ceaea819bda4a3788288a18c1d0713cfae
174
173
2024-02-12T20:16:51Z
Rice
1
fix indentation
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
==== Via the built-in Plugins Manager (recommended) ====
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
==== Manually Installing Plugins ====
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
===== Find the plugin on PyPI or as a git repo =====
====== Plugins on PyPI ======
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
====== Plugins not on PyPI ======
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
===== Install the plugin =====
See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name):
<code>plover -s plover_plugins install plugin-name</code>
If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL):
<code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code>
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
216eef4e1b9e21fae962e4b3c56f6e344c246745
183
174
2024-02-12T20:43:23Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
==== Via the built-in Plugins Manager (recommended) ====
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
==== Manually Installing Plugins ====
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
===== Find the plugin on PyPI or as a git repo =====
====== Plugins on PyPI ======
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
====== Plugins not on PyPI ======
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
===== Install the plugin =====
See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name):
<code>plover -s plover_plugins install plugin-name</code>
If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL):
<code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code>
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
fdce3e8e1e4f9330d0510b129c75ef7af55860a4
184
183
2024-02-12T20:47:40Z
Rice
1
change heading types in installation instructions
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart": [[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
==== Install the plugin ====
See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name):
<code>plover -s plover_plugins install plugin-name</code>
If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL):
<code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code>
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
3f3f54f16a4fc5de45bdaecaba333d30058144b4
185
184
2024-02-12T21:06:50Z
Rice
1
fix image indent
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
==== Install the plugin ====
See [[Invoke Plover from the Command Line]] to access the Plover executable. If the plugin is on PyPI, run the command (replacing <code>plugin-name</code> with the actual plugin name):
<code>plover -s plover_plugins install plugin-name</code>
If the plugin is only available in a git repo (replacing <code><nowiki>https://github.com/user/plugin</nowiki></code> with the actual URL):
<code>plover -s plover_plugins install git+<nowiki>https://github.com/user/plugin</nowiki></code>
----'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
7fe2a1a67285bb4057da6ab783e3ffc7a3f65982
MediaWiki:Sidebar
8
5
170
75
2024-02-12T20:04:25Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Plugins|Plugins
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
9553f30ca6815bd58f52da5b57baef5634406569
200
170
2024-02-12T21:36:17Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Configuration|Configuration
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Plugins|Plugins
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
8a11a038f8418b2d9286d316a9f4b748430d0184
203
200
2024-02-12T21:40:48Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Configuration|Configuration
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Plugins|Plugins
** Command Line|Command Line
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
0a0dae1901ff2cbe3d2d2c7c5d64b13100c47fcb
204
203
2024-02-12T21:41:12Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Configuration|Configuration
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Plugins|Plugins
** Invoke_Plover_from_the_Command_Line|Command Line
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
bf00a6d1be0925143dbe31eccc2ef3a813017dbb
File:Command prompt example for git output.png
6
46
171
2024-02-12T20:11:46Z
Rice
1
wikitext
text/x-wiki
command prompt example for git output
bb929256a464eac7e71d2579ccf579a4915d1851
File:Cmd-git-output.gif
6
47
172
2024-02-12T20:13:14Z
Rice
1
wikitext
text/x-wiki
Cmd-git-output
7019e3f300e3ad3480e422c0a9e8cdd5ee2b6c99
Plover HID
0
48
175
2024-02-12T20:17:54Z
Lynn
10
create article
wikitext
text/x-wiki
The '''Plover HID''' protocol is an alternative protocol for steno keyboards to communicate with steno software, using the common HID (Human Interface Device) standard for mice, keyboards, game controllers, et cetera.
It is implemented by the [https://github.com/dnaq/plover-machine-hid plover-machine-hid Plover plugin].
Notably, it sends packets for each key-up or key-down event, unlike the [[Gemini PR]] or [[TX Bolt]] protocols which only send a packet after a chord is completely released. This allows the plugin to support features such as [[first-up chord send]] or [[auto-repeat]].
== Using Plover HID ==
If your steno board supports [[Javelin]], you can use the [https://lim.au/#/software/javelin-steno firmware builder] to get a version of the Javelin firmware that outputs Plover HID:
# At the top of the page, enable '''Show expert options'''.
# Under '''Keymap''', click the '''Edit''' button next to "Script: OK, xxx bytes"
# Find the line that says <code>console("set_steno_mode <b>gemini</b>");</code>
# Replace it with <code>console("set_steno_mode <b>plover_hid</b>");</code>
Now the four corner keys on your board switch between embedded steno and Plover HID output.
To install the [https://github.com/dnaq/plover-machine-hid plover-machine-hid plugin], see [[Installing plugins]]. Then select "Plover HID" under "Machine" in Plover.
== Specification ==
Devices using the Plover HID protocol can be recognized by <code>usagePage = 0xFF50</code> and <code>usage = 0x4C56</code>.
They send input reports with report ID 80 (<code>0x50</code>) followed by an 8-byte body. The body is a 64-bit bitmask representing the state of the standard English steno keys <code>S- T- K- P- W- H- R- A- O- * -E -U -F -R -P -B -L -G -T -S -D -Z #</code>, followed by extra keys <code>X1</code> through <code>X26</code>.
For example, when <code>S-</code> is pressed down, the device reports <code>80 00 00 00 00 00 00 00</code> (in hexadecimal). Then when <code>T-</code> is additionally pressed it reports <code>c0 00 00 00 00 00 00 00</code>.
== See also ==
* [https://github.com/dnaq/plover-machine-hid/blob/main/README.md The specification in the plover-machine-hid README]
* [https://lim.au/#/software/plover-hid Plover HID Inspector], for debugging.
* [https://foldr.moe/plover-hid-display Plover HID Display], a web-based live keyboard display tool.
8443ec4cf0473be18b394ea80181602ba5bffba3
Invoke Plover from the command line
0
49
176
2024-02-12T20:19:32Z
Rice
1
Created page with "Sometimes (for instance, to manually install plugins) you're required to run a command from the command-line. The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.) In the example below, assume that the following command should be executed: <code>plover -s plover_plugins install plover-stenograph-usb</code> To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</cod..."
wikitext
text/x-wiki
Sometimes (for instance, to manually install plugins) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
<code>plover -s plover_plugins install plover-stenograph-usb</code>
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also Command Line Reference - Plover 4.0.0-dev10<sup>[external link]</sup> for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
# Type in the following command:
# Press Enter to run the command.
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
9507f2717b30ee4ce362e55495b14082bc2db7d9
181
176
2024-02-12T20:26:57Z
Rice
1
wikitext
text/x-wiki
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
<code>plover -s plover_plugins install plover-stenograph-usb</code>
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph-usb
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
== Linux (AppImage) ==
# Execute the command in the command-line:
plover.AppImage -s plover_plugins install plover-stenograph-usb
7c6318add783b818f2ec1bcab8832aed1c163357
File:Windows plover shortcut right click menu.png
6
50
177
2024-02-12T20:22:56Z
Rice
1
wikitext
text/x-wiki
windows plover shortcut right click menu
ee7988de480a65582b45814c9b02734db345eed0
File:Shift right click menu on plover console.png
6
51
178
2024-02-12T20:23:47Z
Rice
1
wikitext
text/x-wiki
shift right click menu on plover_console
113f654a0750d4b8dd5f20377f8791100e0d1a88
File:Showing full path of command in powershell.png
6
52
179
2024-02-12T20:25:18Z
Rice
1
wikitext
text/x-wiki
showing full path of command in powershell
6c807ab2f5ca61e358c9b700a090e9a47efdf34b
File:Install plugin output in powershell.png
6
53
180
2024-02-12T20:26:42Z
Rice
1
wikitext
text/x-wiki
install plugin output in powershell
55fdf0ce33abfb46fc63bfc4a82f07c81307e5e4
Misleading Strokes in Plover's Dictionary
0
32
186
143
2024-02-12T21:14:53Z
Rice
1
convert to media wiki format
wikitext
text/x-wiki
The theory used in Plover's dictionary applies some best practices for stroking certain words. There are some misstroke entries in the Plover dictionary that are very nice (and short), but may cause issues later on. For example, with [https://plover.wiki/index.php/Glossary#Word_Boundary word boundaries].
<span id="and"></span>
=== And ===
The best practice for "and":
* Use <code>SKP</code> ✓
This was chosen arbitrarily, because it is comfortable and there is little chance of a word boundary issue. "and" is a common word ending, so stenographers find it easy to remember to stroke <code>SKP</code>.
<code>SKP</code> is also allows the use of phrases like <code>SKPU → and you</code> and <code>SKPEU → and I</code>.
There are some other strokes in the dictionary for "and". However, they are only to serve as a phonetic alternative when you are writing under pressure, and you can't remember <code>SKP</code>.
<span id="con--words"></span>
=== Con- words ===
In Plover's theory, the best practice for con- words is:
* Use <code>KAUPB</code> to start words beginning with con. ✓
* Only use <code>KOPB</code> for the word "con".
However, when you look up a con word in Plover, it will only return misstrokes that contain the <code>KOPB</code> stroke. The reason for this is because the con- prefix doesn't require a dictionary entry.
For example, for the word "conquer":
* Use <code>KAUPB/KER</code> ✓
* Do not use <code>KOPB/KER</code> ✘
Other words are not easy to write phonetically because they are to be briefed. For example: <code>T-PB for "continue"</code>.
<span id="hyphen--"></span>
=== Hyphen (-) ===
The best practice for "-":
* <code>H-PB</code> ✓
Why <code>H-PB</code>? The reason is that <code>H-PB</code> is <code>H-N</code> in pseudo-steno, which short for hyphen.
There are a set of misstrokes that use <code>H-B</code> instead. These are OK to use.
<span id="was"></span>
=== Was ===
The best practice for "was":
* <code>WAS</code> ✓ or
* <code>WAZ</code>. ✓
The default dictionary has <code>WA → was</code>, which is most of the time all right. However it can conflict in some cases. For example: <code>WA/TKPWOPB → wagon (not "was gone")</code> and <code>WA/TPHA/SA → wanna sa (not "was NASA")</code>.
<span id="your"></span>
=== Your ===
The best practice for "your":
* Use<code>KWROUR</code> ✓
* Do not use <code>KWRUR</code> ✘
This is because <code>KWRUR</code> is a word ending. For example: <code>KHROES/KWRUR → closure</code> versus <code>KHROES/KWROUR → close your</code>.
<span id="period-"></span>
=== Period (.) ===
The best practice for ".":
* <code>TP-PL</code> ✓ or
* <code>-FPLT</code> ✓
The other strokes <code>-P</code> and <code>-PL</code> can be used, but there will be conflicts. For example, <code>WEUPL/-P</code> is "wimp" rather than "women." Similarly, <code>HEL</code> is "hell" but <code>HEL/PL</code> is "helm".
6d07210d842af33eec447e171f75a631fca77eef
Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard
0
55
187
2024-02-12T21:19:04Z
Rice
1
Created page with "Performed on a LionCast Gaming Keyboard LK10 <span id="equipment"></span> == Equipment == (Most is optional) * Plover * Keyboard * Bowls or plastic baggies * Something to remove [https://en.m.wikipedia.org/wiki/Keycap keycaps] from the keyboard (pulling tool that came with the keyboard or you [https://www.thingiverse.com/thing:1318655 3D-][https://www.thingiverse.com/thing:463824 prin][https://www.thingiverse.com/thing:1326329 ted], paperclip bent into hooks, adhesive..."
wikitext
text/x-wiki
Performed on a LionCast Gaming Keyboard LK10
<span id="equipment"></span>
== Equipment ==
(Most is optional)
* Plover
* Keyboard
* Bowls or plastic baggies
* Something to remove [https://en.m.wikipedia.org/wiki/Keycap keycaps] from the keyboard (pulling tool that came with the keyboard or you [https://www.thingiverse.com/thing:1318655 3D-][https://www.thingiverse.com/thing:463824 prin][https://www.thingiverse.com/thing:1326329 ted], paperclip bent into hooks, adhesive tape. There are guides with text, pictures and videos out there. Google "remove keycap [name of your keyboard]")
* Masking tape
* Label maker with plastic tape
* Blu tack
<span id="steps"></span>
== Steps ==
# Take picture of keyboard to know where keys used to be
# Use Plover to find out which keys are used, and which ones aren't
# Pluck off the keys in the Steno layout: #STKPWHRAO*EUFRPBLGTSDZ - except for F
# And yes, there's probably only a single S, T, P on your keyboard.
# Put them to the side, in a bowl or baggy
# Pluck off semicolon, colon, hyphen, asterisk, or similar
# Put those into another bowl
# Leave these keys in place: numbers (0-9), F, J, up-arrow, down-arrow. Pluck off the remaining ones, putting them into 3 bowls: letter keys, irregular shapes, and the rest.
# I left the up- and down-arrow keys on because they can be used to navigate Plover's paper tape.
# F and J are the ones with bumps.
# Check if you can use a non-bumpy key in place of F and J
# If you can: put F into the steno layout bowl, and J in the letter key bowl. If not: leave both in their places
# Pluck out 6, and put the # key there - Reminder that it's the number row, and where the center is.
# Put the asterisk in the lower right corner of the group of 4 keys for *, and semikolon and the rest in the other 3.
# Test that they're in the correct places using Plover
# Put the steno layout keys in their steno layout places
# I placed my S, T and P top left
# Put keys on the rest. Whichever suit you. I chose C for the other S on the left, for instance.
# Use masking tape to tape over the gaps where ESC, F-keys, Home/Insert etc., numpad and arrowkeys were to reduce dust buildup
# Start practicing with [http://qwertysteno.com Qwerty-steno], and notice what's least comfortable
# For me, those were the bottom 4 keys. Pointy things that dug into my thumbs
# See if you can make them more comfortable with Blu Tac
07f5daa88563e27276e7abf8b6d0bfb869237605
Other pages
0
24
188
77
2024-02-12T21:19:32Z
Rice
1
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
745522371277799d482d6036e04ac27d7066a641
197
188
2024-02-12T21:32:35Z
Rice
1
add measuring your writing speed page
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Measuring Your Real World Writing Speed]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
fe444b8e238cb3d2eaa8027fd6f3b56cdaed9197
206
197
2024-02-12T21:44:44Z
Rice
1
add main dictionary changes page
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Main Dictionary Changes]]
* [[Measuring Your Real World Writing Speed]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
47a11ad92a4ec3405b371f2b720481e7d7ab45ec
Stenotype Mnemonics for Beginners (English)
0
23
189
69
2024-02-12T21:20:35Z
Rice
1
wikitext
text/x-wiki
<span id="learning-steno"></span>
== Learning Steno ==
Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice
<span id="single-stroke-consonants-and-single-stroke-vowels"></span>
== Single-stroke consonants and single-stroke vowels ==
[[File:https://www.dropbox.com/s/yhlwbrtwsozxbpd/steno-keyboard2.png?raw=1|source: qwertysteno.org]]
* Verbal mnemonic for consonants in steno order: <br> "STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'" <br>
* Verbal mnemonic for single-key vowels <br> "The bAt-bOt bEt her bUtt that she could put cat-boy behind bars..."
<span id="compound-stroke-mnemonic-images"></span>
== Compound-stroke Mnemonic Images ==
[[File:https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?raw=1]] Download [https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0 hi-res version]
[[File:https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?raw=1]] Download [https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0 hi-res version]
<span id="mnemonic-image-keys--"></span>
== Mnemonic Image Keys: <br> ==
* Consonants: '''sh'''oe '''z'''ebra '''v'''ote '''j'''avelin '''n'''ose '''th'''ought '''f'''eather '''d'''ucky '''g'''ift '''y'''ellowbrickroad '''ch'''op '''m'''achinegun '''b'''ubble '''l'''ion '''p'''ump too'''th''' yo'''lk''' li'''nk''' pat'''ch''' cur'''v'''e cru'''nch''' / '''-lch''' ca'''sh''' paw'''n''' ko'''ng''' pu'''mp''' ha'''m''' ba'''dge''' ('''j''') soc'''k''' reda'''ction''' ('''kshun''') bu'''lge''' ('''lj''') lo'''tion''' ('''shun''')
* Vowels: <br> moon - AO - identifies homophones spelled "oo" or "oa" <br> mitt - EU<br> ape-baby - AEU <br> rowing-boat - OE <br> pea - AE - identifies homophones spelled "ea" or "ae" <br> wheel - AOE <br> oil - OEU - often "wildcard" for making funky briefs <br> saw - AU <br> soup - AOU <br> pow - OU <br> eye - AOEU <br>
<span id="notes"></span>
== Notes: ==
* Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired
* Layered "xcf" image files editable in [https://www.gimp.org/ GIMP] are available [https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0 here] if you want to put in some of your own mnemonics.
* The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations.
* Info about mnemonic methods: [http://artofmemory.com/ ArtOfMemory] , [https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en JoshFoerTEDTalk], [https://en.wikipedia.org/wiki/World_Memory_Championships WorldMemoryChampionships] ,
* For I guess some of the source images included in the mnemonic montages are under education etc, "[https://en.wikipedia.org/wiki/Fair_use fair use]". But other than that, feel free to use and abuse. Public domain for any of my contributions! :)
48b39880a57048a8a81749c911fbfd4c593e0c9b
193
189
2024-02-12T21:26:32Z
Rice
1
convert to mw format
wikitext
text/x-wiki
<span id="learning-steno"></span>
== Learning Steno ==
Sometimes the first steps of learning stenotype is an especially steep learning curve -- much like learning the alphabet and basic sounds of a new language. This page presents some mnemonic devices to help ease this initial learning process. These mnemonics are for use along with a steno tutorial, such as Qwertysteno, LearnPlover, Steno101, etc. These and more are available here: http://stenoknight.com/wiki/Practice
<span id="single-stroke-consonants-and-single-stroke-vowels"></span>
== Single-stroke consonants and single-stroke vowels ==
[[File:Ireland steno layout.png|frameless|417x417px]]
* Verbal mnemonic for consonants in steno order: <br> "STicK PoWer HeRe FoR PuB LoGo: 'ToeS DoZe'" <br>
* Verbal mnemonic for single-key vowels <br> "The bAt-bOt bEt her bUtt that she could put cat-boy behind bars..."
<span id="compound-stroke-mnemonic-images"></span>
== Compound-stroke Mnemonic Images ==
[[File:Compound stroke mnemonic 1.png|frameless|800x800px]]
Download [https://www.dropbox.com/s/cvzb7c0sv5893jd/024_PloverMnemonicConsonants.png?dl=0 hi-res version]
[[File:Compound stroke mnemonic 2.jpg|frameless|829x829px]]
Download [https://www.dropbox.com/s/n5c6j3hozbittvr/005_PloverMnemonicVowels.png?dl=0 hi-res version]
<span id="mnemonic-image-keys--"></span>
== Mnemonic Image Keys: <br> ==
* Consonants: '''sh'''oe '''z'''ebra '''v'''ote '''j'''avelin '''n'''ose '''th'''ought '''f'''eather '''d'''ucky '''g'''ift '''y'''ellowbrickroad '''ch'''op '''m'''achinegun '''b'''ubble '''l'''ion '''p'''ump too'''th''' yo'''lk''' li'''nk''' pat'''ch''' cur'''v'''e cru'''nch''' / '''-lch''' ca'''sh''' paw'''n''' ko'''ng''' pu'''mp''' ha'''m''' ba'''dge''' ('''j''') soc'''k''' reda'''ction''' ('''kshun''') bu'''lge''' ('''lj''') lo'''tion''' ('''shun''')
* Vowels: <br> moon - AO - identifies homophones spelled "oo" or "oa" <br> mitt - EU<br> ape-baby - AEU <br> rowing-boat - OE <br> pea - AE - identifies homophones spelled "ea" or "ae" <br> wheel - AOE <br> oil - OEU - often "wildcard" for making funky briefs <br> saw - AU <br> soup - AOU <br> pow - OU <br> eye - AOEU <br>
<span id="notes"></span>
== Notes: ==
* Please feel welcome to update this wiki page's structure to include additional mnemonic models if desired
* Layered "xcf" image files editable in [https://www.gimp.org/ GIMP] are available [https://www.dropbox.com/sh/h1ytoo3kydwi8hn/AABXtMzt2gH3TZlhCrTbjeB_a?dl=0 here] if you want to put in some of your own mnemonics.
* The best mnemonics are always the ones you make up yourself. So feel encouraged to make your own mnemonic sketches, or modify the xcf file with your favorite sound/image associations.
* Info about mnemonic methods: [http://artofmemory.com/ ArtOfMemory] , [https://www.ted.com/talks/joshua_foer_feats_of_memory_anyone_can_do?language=en JoshFoerTEDTalk], [https://en.wikipedia.org/wiki/World_Memory_Championships WorldMemoryChampionships] ,
* For I guess some of the source images included in the mnemonic montages are under education etc, "[https://en.wikipedia.org/wiki/Fair_use fair use]". But other than that, feel free to use and abuse. Public domain for any of my contributions! :)
2e14a09c3075f373e38217e1f188b2e44cb1db36
File:Ireland steno layout.png
6
56
190
2024-02-12T21:22:04Z
Rice
1
wikitext
text/x-wiki
ireland steno layout
e26ee378f1d0bf46f4639d6306ee7ac878c1c9eb
File:Compound stroke mnemonic 1.png
6
57
191
2024-02-12T21:23:04Z
Rice
1
wikitext
text/x-wiki
compound stroke mnemonic 1
808d138cb61f2f0583de38c839cd365cb29f4e33
File:Compound stroke mnemonic 2.jpg
6
58
192
2024-02-12T21:25:45Z
Rice
1
wikitext
text/x-wiki
compound stroke mnemonic 2
9f6f2d6609326fababcdd4f5c1d5f1369296c7d0
Top 100 Words in Plover's Dictionary
0
31
194
142
2024-02-12T21:27:59Z
Rice
1
wikitext
text/x-wiki
What they are, and why they are stroked like that.
<span id="introduction"></span>
== Introduction ==
Fun fact: The top 100 words in the English language make up about 50% of all written material.
When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to:
* Avoiding [https://github.com/openstenoproject/plover/wiki/Glossary#word-boundary word boundary errors]
* Ease of stroking
<span id="the-list"></span>
== The List ==
<span id="1-the"></span>
=== 1. the ===
<code>-T</code>
The most common word in the English language is reserved to just one key, right-hand <code>-T</code>. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: <code>SKP-T</code> for "and the".
<span id="2-be"></span>
=== 2. be ===
<code>-B</code>
Right-hand <code>-B</code>. The "B" key in Plover just happens to be the "be" key. How convenient! Writing out "be" like <code>PWE</code> is the word part "be^". For example: "beware" or "belated". And the phonetic <code>PWAOE</code> is "bee"!
<span id="3-to"></span>
=== 3. to ===
<code>TO</code>
Written out by spelling, <code>TO</code>. This is easy to hit and free of conflicts.
Warning: <code>O</code> for "to" in the default dictionary is a misstroke. It is not free from word boundaries.
<span id="4-of"></span>
=== 4. of ===
<code>-F</code>
Right-hand <code>-F</code>. This is a simple one key stroke, and it frees up <code>OF</code> to be used for "off".
<span id="5-and"></span>
=== 5. and ===
<code>SKP-</code>
<code>SKP-</code>. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like <code>SKPU</code> for "and you".
<span id="6-a"></span>
=== 6. a ===
<code>AEU</code>
<code>A</code> is used as a prefix for words like "affix" or "arrive". The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted.
<span id="7-in"></span>
=== 7. in ===
<code>TPH</code>
<code>TPH</code> is just the left-hand <code>N</code>. This combination frees up <code>EUPB</code> to be used for the "in^" prefix, like in "indoors". Also good for phrases, such as <code>TPH-T</code> for "in the".
<span id="8-that"></span>
=== 8. that ===
<code>THA</code>
We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: <code>THAR</code> for "that are", <code>THAS</code> for "that is".
<span id="9-have"></span>
=== 9. have ===
<code>SR-</code>
This is the left-hand <code>V</code>. The phonetic version of this would be <code>HA*F</code> which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like <code>SR-T</code> for "have the".
<code>HAF</code> and <code>HA*F</code> get mapped to "half" and "1/2" in the default dictionary, respectively.
<span id="10-i"></span>
=== 10. I ===
<code>EU</code> (<code>I</code>)
This is a non-phonetic stroke to give space for "eye". It's easy to hit and fits in some phrases, such as <code>SKPEU</code> for "and I". Note that, in some cases, you will use the <code>AOEU</code> cluster for I, such as in "I'll" (<code>AOEUL</code>) and "I'm" (<code>AOEUPL</code>) because the shorter versions are used for other things, in this case "ill" and the word beginning "im^".
<span id="11-it"></span>
=== 11. it ===
<code>T-</code>
This is easy to hit and on the left hand for beginning phrases such as <code>TWAS</code> for "it was". Same pattern as for "in" and "if".
<span id="12-for"></span>
=== 12. for ===
<code>TP-R</code> (F-R).
This drops the vowel to save effort for such a common word. If you want to use "for^" the prefix, then use <code>FAUR</code>. For example, forgone is <code>FAUR/TKPWOPB</code>.
<span id="13-not"></span>
=== 13. not ===
<code>TPHOT</code>
<span id="14-on"></span>
=== 14. on ===
<code>OPB</code>
<span id="15-with"></span>
=== 15. with ===
<code>W-</code>
This is another easy to use single key stroke that can begin phrases like <code>WOUR</code> for "with our" and <code>W-T</code> for "with the".
<span id="16-he"></span>
=== 16. he ===
<code>HE</code>
This is recommended over the <code>E</code>-only version for most cases, but depending on the phrase or word you might need <code>E</code> (<code>SKPE</code>: and he), <code>HE</code> (<code>HEBGD</code>: he could), and <code>HAOE</code> (<code>HAO*EL</code>: he'll)
<span id="17-as"></span>
=== 17. as ===
<code>AS</code> (spelling) or <code>AZ</code> (phonetic).
<span id="18-you"></span>
=== 18. you ===
<code>U</code>
The <code>U</code> key is used for "you". Can be used in phrases such as <code>SKPU</code> for "and you".
<span id="19-do"></span>
=== 19. do ===
<code>TKO</code> (spelling).
Don't drop the vowel, because <code>TK-</code> alone is used for "did".
<span id="20-at"></span>
=== 20. at ===
<code>AT</code>
<span id="21-this"></span>
=== 21. this ===
<code>TH</code>
"This" is a special case, as it's basically set to <code>TH</code> for convenience and to open up the opportunity for several other briefs. For example, <code>THEU</code> is used for "think", and <code>THEUS</code> follows as "thinks".
Also works in phrases: <code>TH-FS</code> for "this was"
<span id="22-but"></span>
=== 22. but ===
<code>PWUT</code> or <code>PWU</code>.
Mirabai uses <code>PWUT</code> as "but" and that is okay, but you can safely remap <code>PWUT</code> to "but the" if you want to use <code>PWU</code> as "but" exclusively.
<span id="23-his"></span>
=== 23. his ===
<code>HEUS</code> (spelling), <code>HEUZ</code> (phonetic)
<span id="24-by"></span>
=== 24. by ===
<code>PWEU</code>
This is a non-phonetic mapping to make room for <code>PWAOEU</code>: "buy". Add an asterisk to "by" and get the word beginning "bi^", add an asterisk to "buy" and get "bye".
<span id="25-from"></span>
=== 25. from ===
<code>TPR-</code> (<code>FR-</code>).
This is similar to "for" (<code>TP-R</code>), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up "from" to phrases, like in <code>TPRUS</code> for "from us" and <code>TPR-T</code> for "from the" and <code>TPREUPLT</code> for "from time to time".
<span id="26-they"></span>
=== 26. they ===
<code>THE</code>
Since "the" is stroked with just <code>-T</code>, we can place "they" in this stroke. It's important not to use <code>THAEU</code> to avoid potential conflict when we get to "they're" and "their".
<span id="27-we"></span>
=== 27. we ===
<code>WE</code> (spelling) or <code>WAOE</code> (phonetic)
<span id="28-say"></span>
=== 28. say ===
<code>SAEU</code> (phonetic).
Advanced: Also present as a right-hand only shortcut as <code>-BZ</code>, such as <code>THEBZ</code> for "they say". Get the past tense with <code>-BS</code> such as <code>THEBS</code> for "they said".
<span id="29-her"></span>
=== 29. her ===
<code>HER</code>
<span id="30-she"></span>
=== 30. she ===
<code>SHE</code> (spelling) or <code>SHAOE</code> (phonetic)
<span id="31-or"></span>
=== 31. or ===
<code>OR</code>.
The phonetic version is given instead to "other" (<code>OER</code>).
<span id="32-an"></span>
=== 32. an ===
<code>APB</code>
<span id="33-will"></span>
=== 33. will ===
<code>HR-</code>
Left-hand L. Useful for phrases, such as <code>HR-B</code> for "will be" and <code>HRU</code> for "will you".
<span id="34-my"></span>
=== 34. my ===
<code>PHEU</code> or <code>PHAOEU</code>.
We break phonetic convention to offer an easier to hit stroke.
<span id="35-one"></span>
=== 35. one ===
<code>WUPB</code> (phonetic)
<span id="36-all"></span>
=== 36. all ===
<code>AUL</code> (phonetic).
This vowel is common in the Plover dictionary, such as in <code>WAUL</code> (wall) and <code>PWAUL</code> (ball).
<span id="37-would"></span>
=== 37. would ===
<code>WO</code>.
Left-hand-only brief is useful for phrases: <code>WOB</code> for "would be" and <code>WOU</code> for "would you".
<span id="38-there"></span>
=== 38. there ===
<code>THR-</code>
This brief is used to avoid conflict with <code>THER</code> for "they're" and <code>THAEUR</code> for "their".
<span id="39-their"></span>
=== 39. their ===
<code>THAEUR</code> (phonetic).
The homophone "they're" is stroked with <code>THER</code> which is the brief <code>THE</code> for "they" with <code>-R</code> added on.
<span id="40-what"></span>
=== 40. what ===
<code>WHA</code>
Similar to <code>THA</code> for "that", <code>WHAT</code> is "what the".
<span id="41-so"></span>
=== 41. so ===
<code>SO</code> (spelling)
<span id="42-up"></span>
=== 42. up ===
<code>UP</code>
Use <code>AUP</code> for the word beginning "up^" like <code>AUP/WARDZ</code> for "upwards".
<span id="43-out"></span>
=== 43. out ===
<code>OUT</code>
Use <code>AOUT</code> for the word beginning "out^" like <code>AOUT/SPOEBG/*EN</code> for "outspoken" or <code>AOUT/RAEUPBLG</code> for "outrage".
<span id="44-if"></span>
=== 44. if ===
<code>TP-</code>
The bare left F is used for "if". Good as a phrase beginner, such as <code>TP-T</code> for "if the". Same pattern as "it" and "in".
<span id="45-about"></span>
=== 45. about ===
<code>PW-</code>
The left-hand B is used for "about" as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: <code>PW-T</code> for "about the".
<span id="46-who"></span>
=== 46. who ===
<code>WHO</code> (spelling).
We can't use <code>HAOU</code> (hue) or <code>HAO</code> (hoo).
<span id="47-get"></span>
=== 47. get ===
<code>TKPWET</code> or <code>TKPW-T</code>
<span id="48-which"></span>
=== 48. which ===
<code>WEU</code>. Just a brief.
<span id="49-go"></span>
=== 49. go ===
<code>TKPWO</code> (spelling), <code>TKPWOE</code> (phonetic), or just <code>TKPW</code>.
<span id="50-me"></span>
=== 50. me ===
<code>PHE</code> (spelling), <code>PHAOE</code> (phonetic).
As with many of these common words, being less strict on the vowel gives your fingers a potential break.
<span id="51-when"></span>
=== 51. when ===
<code>WH</code> (brief) or <code>WHEPB</code> (spelling)
<span id="52-make"></span>
=== 52. make ===
<code>PHAEUBG</code> (<code>MAIK</code>) (phonetic)
<span id="53-can"></span>
=== 53. can ===
The left-hand <code>K-</code> only, useful for phrases. <code>K-B</code> (can be).
<span id="54-like"></span>
=== 54. like ===
<code>HRAOEUBG</code> (phonetic)
<span id="55-time"></span>
=== 55. time ===
<code>TAOEUPL</code> (phonetic)
<span id="56-no"></span>
=== 56. no ===
<code>TPHO</code> (spelling).
The phonetic version is saved for "know".
<span id="57-just"></span>
=== 57. just ===
<code>SKWRUFT</code>
Remember that <code>-F</code> is sometimes used for S.
<span id="58-him"></span>
=== 58. him ===
<code>HEUPL</code>
<span id="59-know"></span>
=== 59. know ===
<code>TPHOE</code> (phonetic)
<span id="60-take"></span>
=== 60. take ===
<code>TAEUBG</code> (phonetic)
<span id="61-people"></span>
=== 61. people ===
<code>PAOEPL</code>
In this case <code>-PL</code> is used for the "pl" sound instead of <code>-M</code>.
<span id="62-into"></span>
=== 62. into ===
<code>TPHAO</code>
<code>TPH-</code> is "in", and <code>AO</code> is sometimes used for <code>oo</code> which sounds liked the vowel in "into". Can't use <code>TPHAOU</code> as it is being used by "knew".
<span id="63-year"></span>
=== 63. year ===
<code>KWRAOER</code> (phonetic)
<span id="64-your"></span>
=== 64. your ===
<code>KWROUR</code> (spelling).
Don't use <code>KWRUR</code> as that's the word ending <code>^ur</code> like in <code>KHROES/KWRUR</code> (closure).
<span id="65-good"></span>
=== 65. good ===
<code>TKPWAOD</code>
<span id="66-some"></span>
=== 66. some ===
<code>SOPL</code>
As a word beginning, <code>S-</code> and <code>SPH-</code> are used: for example, <code>SPH-PB</code> for "someone" and <code>S-G</code> for "something".
<span id="67-could"></span>
=== 67. could ===
<code>KO</code>
Brief like <code>WO</code> for "would".
<span id="68-them"></span>
=== 68. them ===
<code>THEPL</code>
<span id="69-see"></span>
=== 69. see ===
<code>SAOE</code>
<span id="70-other"></span>
=== 70. other ===
<code>OER</code>
Shows up as a word part, like in <code>TPHOER</code> for "another".
<span id="71-than"></span>
=== 71. than ===
<code>THAPB</code> (spelling)
<span id="72-then"></span>
=== 72. then ===
<code>THEPB</code> (spelling)
<span id="73-now"></span>
=== 73. now ===
<code>TPHOU</code>
<span id="74-look"></span>
=== 74. look ===
<code>HRAOBG</code>
<span id="75-only"></span>
=== 75. only ===
<code>OEPBL</code>
In Plover's dictionary, <code>E</code> is often added to strokes to make them end with an "ee" sound. <code>OEPBL</code> can be thought of as "onl/ee". Lots of briefs use this, such as <code>KRAER</code> for "contrary" and <code>TPAEPL</code> for "family".
<span id="76-come"></span>
=== 76. come ===
<code>KOPL</code>
<span id="77-its"></span>
=== 77. its ===
<code>EUTS</code>
<code>T-S</code> is used for "it's".
<span id="78-over"></span>
=== 78. over ===
<code>OEFR</code>
Emphasizing the tense-O sound to contrast with <code>OFR</code> for "offer". To use as a prefix, use <code>AUFR</code>, such as <code>AUFR/TKOPB</code> for "overdone".
<span id="79-think"></span>
=== 79. think ===
<code>THEU</code> (brief), with a whole family: <code>THEUS</code> for "thinks", <code>THEUG</code> for "thinking".
<span id="80-also"></span>
=== 80. also ===
<code>HR-S</code> (brief)
<span id="81-back"></span>
=== 81. back ===
<code>PWABG</code>
<span id="82-after"></span>
=== 82. after ===
<code>AF</code>
<code>AFT</code> is a misstroke entry which you could consider remapping to "aft" or "after the". To use as a prefix, use <code>AFR</code>, such as <code>AFR/TAEUFT</code> for "aftertaste".
<span id="83-use"></span>
=== 83. use ===
<code>AOUS</code> or <code>AOUZ</code>
<span id="84-two"></span>
=== 84. two ===
<code>TWO</code> (spelling)
<span id="85-how"></span>
=== 85. how ===
<code>HOU</code>
<span id="86-our"></span>
=== 86. our ===
<code>OUR</code>
<span id="87-work"></span>
=== 87. work ===
<code>WORBG</code>
<span id="88-first"></span>
=== 88. first ===
<code>TPEURS</code>
This brief drops the "t" sound for comfort.
<span id="89-well"></span>
=== 89. well ===
<code>WEL</code>
<span id="90-way"></span>
=== 90. way ===
<code>WAEU</code>
<span id="91-even"></span>
=== 91. even ===
<code>AOEPB</code> or <code>AOEFPB</code>
Dropping the -F makes this stroke easier to hit.
<span id="92-new"></span>
=== 92. new ===
<code>TPHU</code>
Briefed to avoid conflict with <code>TPHAOU</code> for "knew".
<span id="93-want"></span>
=== 93. want ===
<code>WAPBT</code>
<span id="94-because"></span>
=== 94. because ===
<code>PWAUS</code> or <code>PWAUZ</code> (briefs)
<span id="95-any"></span>
=== 95. any ===
<code>TPHEU</code> (brief)
<span id="96-these"></span>
=== 96. these ===
<code>THEZ</code> (brief) or <code>THAOES</code>/<code>THAOEZ</code> (phonetic).
The brief is much easier to hit.
<span id="97-give"></span>
=== 97. give ===
<code>TKPWEUF</code>
No need for an asterisk, which is often the case with common words in the Plover dictionary.
<span id="98-day"></span>
=== 98. day ===
<code>TKAEU</code> (phonetic)
<span id="99-most"></span>
=== 99. most ===
<code>PHOFT</code>, <code>PHOEFT</code>, <code>PHO*ES</code>, or <code>PHO*S</code>.
Go with the option you like most.
<span id="100-us"></span>
=== 100. us ===
<code>US</code>
52d74c17b8ae6ad5daec9b11aec27b030107bcda
195
194
2024-02-12T21:29:06Z
Rice
1
fix broken internal link
wikitext
text/x-wiki
What they are, and why they are stroked like that.
<span id="introduction"></span>
== Introduction ==
Fun fact: The top 100 words in the English language make up about 50% of all written material.
When learning steno theory, you might be confused by the fact that many common words are not written out phonetically. There are many reasons that this is the case, but it boils down to:
* Avoiding [[Glossary#Word Boundary|word boundary errors]]
* Ease of stroking
<span id="the-list"></span>
== The List ==
<span id="1-the"></span>
=== 1. the ===
<code>-T</code>
The most common word in the English language is reserved to just one key, right-hand <code>-T</code>. The right hand position makes it easy to have a single stroke brief for some of the most common two-word phrases. For example: <code>SKP-T</code> for "and the".
<span id="2-be"></span>
=== 2. be ===
<code>-B</code>
Right-hand <code>-B</code>. The "B" key in Plover just happens to be the "be" key. How convenient! Writing out "be" like <code>PWE</code> is the word part "be^". For example: "beware" or "belated". And the phonetic <code>PWAOE</code> is "bee"!
<span id="3-to"></span>
=== 3. to ===
<code>TO</code>
Written out by spelling, <code>TO</code>. This is easy to hit and free of conflicts.
Warning: <code>O</code> for "to" in the default dictionary is a misstroke. It is not free from word boundaries.
<span id="4-of"></span>
=== 4. of ===
<code>-F</code>
Right-hand <code>-F</code>. This is a simple one key stroke, and it frees up <code>OF</code> to be used for "off".
<span id="5-and"></span>
=== 5. and ===
<code>SKP-</code>
<code>SKP-</code>. This is an easy to hit stroke with only the left hand. This makes it a good candidate for starting phrases, like <code>SKPU</code> for "and you".
<span id="6-a"></span>
=== 6. a ===
<code>AEU</code>
<code>A</code> is used as a prefix for words like "affix" or "arrive". The tense A sound is used to avoid conflicts. In some theories, these strokes are mixed, and you could swap them safely, if you wanted.
<span id="7-in"></span>
=== 7. in ===
<code>TPH</code>
<code>TPH</code> is just the left-hand <code>N</code>. This combination frees up <code>EUPB</code> to be used for the "in^" prefix, like in "indoors". Also good for phrases, such as <code>TPH-T</code> for "in the".
<span id="8-that"></span>
=== 8. that ===
<code>THA</code>
We drop the ending T to bring this stroke into the left hand for use at the beginning of phrases. Examples: <code>THAR</code> for "that are", <code>THAS</code> for "that is".
<span id="9-have"></span>
=== 9. have ===
<code>SR-</code>
This is the left-hand <code>V</code>. The phonetic version of this would be <code>HA*F</code> which is much harder to stroke for such a common word, and the left-hand makes right-hand phrase parts feel more natural, like <code>SR-T</code> for "have the".
<code>HAF</code> and <code>HA*F</code> get mapped to "half" and "1/2" in the default dictionary, respectively.
<span id="10-i"></span>
=== 10. I ===
<code>EU</code> (<code>I</code>)
This is a non-phonetic stroke to give space for "eye". It's easy to hit and fits in some phrases, such as <code>SKPEU</code> for "and I". Note that, in some cases, you will use the <code>AOEU</code> cluster for I, such as in "I'll" (<code>AOEUL</code>) and "I'm" (<code>AOEUPL</code>) because the shorter versions are used for other things, in this case "ill" and the word beginning "im^".
<span id="11-it"></span>
=== 11. it ===
<code>T-</code>
This is easy to hit and on the left hand for beginning phrases such as <code>TWAS</code> for "it was". Same pattern as for "in" and "if".
<span id="12-for"></span>
=== 12. for ===
<code>TP-R</code> (F-R).
This drops the vowel to save effort for such a common word. If you want to use "for^" the prefix, then use <code>FAUR</code>. For example, forgone is <code>FAUR/TKPWOPB</code>.
<span id="13-not"></span>
=== 13. not ===
<code>TPHOT</code>
<span id="14-on"></span>
=== 14. on ===
<code>OPB</code>
<span id="15-with"></span>
=== 15. with ===
<code>W-</code>
This is another easy to use single key stroke that can begin phrases like <code>WOUR</code> for "with our" and <code>W-T</code> for "with the".
<span id="16-he"></span>
=== 16. he ===
<code>HE</code>
This is recommended over the <code>E</code>-only version for most cases, but depending on the phrase or word you might need <code>E</code> (<code>SKPE</code>: and he), <code>HE</code> (<code>HEBGD</code>: he could), and <code>HAOE</code> (<code>HAO*EL</code>: he'll)
<span id="17-as"></span>
=== 17. as ===
<code>AS</code> (spelling) or <code>AZ</code> (phonetic).
<span id="18-you"></span>
=== 18. you ===
<code>U</code>
The <code>U</code> key is used for "you". Can be used in phrases such as <code>SKPU</code> for "and you".
<span id="19-do"></span>
=== 19. do ===
<code>TKO</code> (spelling).
Don't drop the vowel, because <code>TK-</code> alone is used for "did".
<span id="20-at"></span>
=== 20. at ===
<code>AT</code>
<span id="21-this"></span>
=== 21. this ===
<code>TH</code>
"This" is a special case, as it's basically set to <code>TH</code> for convenience and to open up the opportunity for several other briefs. For example, <code>THEU</code> is used for "think", and <code>THEUS</code> follows as "thinks".
Also works in phrases: <code>TH-FS</code> for "this was"
<span id="22-but"></span>
=== 22. but ===
<code>PWUT</code> or <code>PWU</code>.
Mirabai uses <code>PWUT</code> as "but" and that is okay, but you can safely remap <code>PWUT</code> to "but the" if you want to use <code>PWU</code> as "but" exclusively.
<span id="23-his"></span>
=== 23. his ===
<code>HEUS</code> (spelling), <code>HEUZ</code> (phonetic)
<span id="24-by"></span>
=== 24. by ===
<code>PWEU</code>
This is a non-phonetic mapping to make room for <code>PWAOEU</code>: "buy". Add an asterisk to "by" and get the word beginning "bi^", add an asterisk to "buy" and get "bye".
<span id="25-from"></span>
=== 25. from ===
<code>TPR-</code> (<code>FR-</code>).
This is similar to "for" (<code>TP-R</code>), but instead of dropping just the vowel, we drop the ending -M sound as well. This opens up "from" to phrases, like in <code>TPRUS</code> for "from us" and <code>TPR-T</code> for "from the" and <code>TPREUPLT</code> for "from time to time".
<span id="26-they"></span>
=== 26. they ===
<code>THE</code>
Since "the" is stroked with just <code>-T</code>, we can place "they" in this stroke. It's important not to use <code>THAEU</code> to avoid potential conflict when we get to "they're" and "their".
<span id="27-we"></span>
=== 27. we ===
<code>WE</code> (spelling) or <code>WAOE</code> (phonetic)
<span id="28-say"></span>
=== 28. say ===
<code>SAEU</code> (phonetic).
Advanced: Also present as a right-hand only shortcut as <code>-BZ</code>, such as <code>THEBZ</code> for "they say". Get the past tense with <code>-BS</code> such as <code>THEBS</code> for "they said".
<span id="29-her"></span>
=== 29. her ===
<code>HER</code>
<span id="30-she"></span>
=== 30. she ===
<code>SHE</code> (spelling) or <code>SHAOE</code> (phonetic)
<span id="31-or"></span>
=== 31. or ===
<code>OR</code>.
The phonetic version is given instead to "other" (<code>OER</code>).
<span id="32-an"></span>
=== 32. an ===
<code>APB</code>
<span id="33-will"></span>
=== 33. will ===
<code>HR-</code>
Left-hand L. Useful for phrases, such as <code>HR-B</code> for "will be" and <code>HRU</code> for "will you".
<span id="34-my"></span>
=== 34. my ===
<code>PHEU</code> or <code>PHAOEU</code>.
We break phonetic convention to offer an easier to hit stroke.
<span id="35-one"></span>
=== 35. one ===
<code>WUPB</code> (phonetic)
<span id="36-all"></span>
=== 36. all ===
<code>AUL</code> (phonetic).
This vowel is common in the Plover dictionary, such as in <code>WAUL</code> (wall) and <code>PWAUL</code> (ball).
<span id="37-would"></span>
=== 37. would ===
<code>WO</code>.
Left-hand-only brief is useful for phrases: <code>WOB</code> for "would be" and <code>WOU</code> for "would you".
<span id="38-there"></span>
=== 38. there ===
<code>THR-</code>
This brief is used to avoid conflict with <code>THER</code> for "they're" and <code>THAEUR</code> for "their".
<span id="39-their"></span>
=== 39. their ===
<code>THAEUR</code> (phonetic).
The homophone "they're" is stroked with <code>THER</code> which is the brief <code>THE</code> for "they" with <code>-R</code> added on.
<span id="40-what"></span>
=== 40. what ===
<code>WHA</code>
Similar to <code>THA</code> for "that", <code>WHAT</code> is "what the".
<span id="41-so"></span>
=== 41. so ===
<code>SO</code> (spelling)
<span id="42-up"></span>
=== 42. up ===
<code>UP</code>
Use <code>AUP</code> for the word beginning "up^" like <code>AUP/WARDZ</code> for "upwards".
<span id="43-out"></span>
=== 43. out ===
<code>OUT</code>
Use <code>AOUT</code> for the word beginning "out^" like <code>AOUT/SPOEBG/*EN</code> for "outspoken" or <code>AOUT/RAEUPBLG</code> for "outrage".
<span id="44-if"></span>
=== 44. if ===
<code>TP-</code>
The bare left F is used for "if". Good as a phrase beginner, such as <code>TP-T</code> for "if the". Same pattern as "it" and "in".
<span id="45-about"></span>
=== 45. about ===
<code>PW-</code>
The left-hand B is used for "about" as a convenient brief. Some theories do this word differently. One nice benefit of being on the left side is, of course, phrases: <code>PW-T</code> for "about the".
<span id="46-who"></span>
=== 46. who ===
<code>WHO</code> (spelling).
We can't use <code>HAOU</code> (hue) or <code>HAO</code> (hoo).
<span id="47-get"></span>
=== 47. get ===
<code>TKPWET</code> or <code>TKPW-T</code>
<span id="48-which"></span>
=== 48. which ===
<code>WEU</code>. Just a brief.
<span id="49-go"></span>
=== 49. go ===
<code>TKPWO</code> (spelling), <code>TKPWOE</code> (phonetic), or just <code>TKPW</code>.
<span id="50-me"></span>
=== 50. me ===
<code>PHE</code> (spelling), <code>PHAOE</code> (phonetic).
As with many of these common words, being less strict on the vowel gives your fingers a potential break.
<span id="51-when"></span>
=== 51. when ===
<code>WH</code> (brief) or <code>WHEPB</code> (spelling)
<span id="52-make"></span>
=== 52. make ===
<code>PHAEUBG</code> (<code>MAIK</code>) (phonetic)
<span id="53-can"></span>
=== 53. can ===
The left-hand <code>K-</code> only, useful for phrases. <code>K-B</code> (can be).
<span id="54-like"></span>
=== 54. like ===
<code>HRAOEUBG</code> (phonetic)
<span id="55-time"></span>
=== 55. time ===
<code>TAOEUPL</code> (phonetic)
<span id="56-no"></span>
=== 56. no ===
<code>TPHO</code> (spelling).
The phonetic version is saved for "know".
<span id="57-just"></span>
=== 57. just ===
<code>SKWRUFT</code>
Remember that <code>-F</code> is sometimes used for S.
<span id="58-him"></span>
=== 58. him ===
<code>HEUPL</code>
<span id="59-know"></span>
=== 59. know ===
<code>TPHOE</code> (phonetic)
<span id="60-take"></span>
=== 60. take ===
<code>TAEUBG</code> (phonetic)
<span id="61-people"></span>
=== 61. people ===
<code>PAOEPL</code>
In this case <code>-PL</code> is used for the "pl" sound instead of <code>-M</code>.
<span id="62-into"></span>
=== 62. into ===
<code>TPHAO</code>
<code>TPH-</code> is "in", and <code>AO</code> is sometimes used for <code>oo</code> which sounds liked the vowel in "into". Can't use <code>TPHAOU</code> as it is being used by "knew".
<span id="63-year"></span>
=== 63. year ===
<code>KWRAOER</code> (phonetic)
<span id="64-your"></span>
=== 64. your ===
<code>KWROUR</code> (spelling).
Don't use <code>KWRUR</code> as that's the word ending <code>^ur</code> like in <code>KHROES/KWRUR</code> (closure).
<span id="65-good"></span>
=== 65. good ===
<code>TKPWAOD</code>
<span id="66-some"></span>
=== 66. some ===
<code>SOPL</code>
As a word beginning, <code>S-</code> and <code>SPH-</code> are used: for example, <code>SPH-PB</code> for "someone" and <code>S-G</code> for "something".
<span id="67-could"></span>
=== 67. could ===
<code>KO</code>
Brief like <code>WO</code> for "would".
<span id="68-them"></span>
=== 68. them ===
<code>THEPL</code>
<span id="69-see"></span>
=== 69. see ===
<code>SAOE</code>
<span id="70-other"></span>
=== 70. other ===
<code>OER</code>
Shows up as a word part, like in <code>TPHOER</code> for "another".
<span id="71-than"></span>
=== 71. than ===
<code>THAPB</code> (spelling)
<span id="72-then"></span>
=== 72. then ===
<code>THEPB</code> (spelling)
<span id="73-now"></span>
=== 73. now ===
<code>TPHOU</code>
<span id="74-look"></span>
=== 74. look ===
<code>HRAOBG</code>
<span id="75-only"></span>
=== 75. only ===
<code>OEPBL</code>
In Plover's dictionary, <code>E</code> is often added to strokes to make them end with an "ee" sound. <code>OEPBL</code> can be thought of as "onl/ee". Lots of briefs use this, such as <code>KRAER</code> for "contrary" and <code>TPAEPL</code> for "family".
<span id="76-come"></span>
=== 76. come ===
<code>KOPL</code>
<span id="77-its"></span>
=== 77. its ===
<code>EUTS</code>
<code>T-S</code> is used for "it's".
<span id="78-over"></span>
=== 78. over ===
<code>OEFR</code>
Emphasizing the tense-O sound to contrast with <code>OFR</code> for "offer". To use as a prefix, use <code>AUFR</code>, such as <code>AUFR/TKOPB</code> for "overdone".
<span id="79-think"></span>
=== 79. think ===
<code>THEU</code> (brief), with a whole family: <code>THEUS</code> for "thinks", <code>THEUG</code> for "thinking".
<span id="80-also"></span>
=== 80. also ===
<code>HR-S</code> (brief)
<span id="81-back"></span>
=== 81. back ===
<code>PWABG</code>
<span id="82-after"></span>
=== 82. after ===
<code>AF</code>
<code>AFT</code> is a misstroke entry which you could consider remapping to "aft" or "after the". To use as a prefix, use <code>AFR</code>, such as <code>AFR/TAEUFT</code> for "aftertaste".
<span id="83-use"></span>
=== 83. use ===
<code>AOUS</code> or <code>AOUZ</code>
<span id="84-two"></span>
=== 84. two ===
<code>TWO</code> (spelling)
<span id="85-how"></span>
=== 85. how ===
<code>HOU</code>
<span id="86-our"></span>
=== 86. our ===
<code>OUR</code>
<span id="87-work"></span>
=== 87. work ===
<code>WORBG</code>
<span id="88-first"></span>
=== 88. first ===
<code>TPEURS</code>
This brief drops the "t" sound for comfort.
<span id="89-well"></span>
=== 89. well ===
<code>WEL</code>
<span id="90-way"></span>
=== 90. way ===
<code>WAEU</code>
<span id="91-even"></span>
=== 91. even ===
<code>AOEPB</code> or <code>AOEFPB</code>
Dropping the -F makes this stroke easier to hit.
<span id="92-new"></span>
=== 92. new ===
<code>TPHU</code>
Briefed to avoid conflict with <code>TPHAOU</code> for "knew".
<span id="93-want"></span>
=== 93. want ===
<code>WAPBT</code>
<span id="94-because"></span>
=== 94. because ===
<code>PWAUS</code> or <code>PWAUZ</code> (briefs)
<span id="95-any"></span>
=== 95. any ===
<code>TPHEU</code> (brief)
<span id="96-these"></span>
=== 96. these ===
<code>THEZ</code> (brief) or <code>THAOES</code>/<code>THAOEZ</code> (phonetic).
The brief is much easier to hit.
<span id="97-give"></span>
=== 97. give ===
<code>TKPWEUF</code>
No need for an asterisk, which is often the case with common words in the Plover dictionary.
<span id="98-day"></span>
=== 98. day ===
<code>TKAEU</code> (phonetic)
<span id="99-most"></span>
=== 99. most ===
<code>PHOFT</code>, <code>PHOEFT</code>, <code>PHO*ES</code>, or <code>PHO*S</code>.
Go with the option you like most.
<span id="100-us"></span>
=== 100. us ===
<code>US</code>
d1186497de71792acf0ae4b4dae6a58dadf57212
Measuring Your Real World Writing Speed
0
59
196
2024-02-12T21:31:59Z
Rice
1
Created page with "Many discussions in the Plover community center around writing speed: * New starters often focus on how fast they can write, often posting their current top speed (in any test). * New starters often want to work out when they will reach their "real world" speed (on a character-based keyboard) while using Steno. * People creating stenography keyboards post videos on social media of successfully using those devices to write at above 200WPM. This page is a repository of co..."
wikitext
text/x-wiki
Many discussions in the Plover community center around writing speed:
* New starters often focus on how fast they can write, often posting their current top speed (in any test).
* New starters often want to work out when they will reach their "real world" speed (on a character-based keyboard) while using Steno.
* People creating stenography keyboards post videos on social media of successfully using those devices to write at above 200WPM.
This page is a repository of common ways to measure your writing speed. If you have a new method that you would like to add, please feel free to modify this page. The hope is that the community will eventually converge on a small number of indicative tests to measure speed.
== RealWPM ==
TODO https://robertmassaioli.medium.com/a-realwpm-for-stenography-be94beffab20
== ao10 ==
TODO https://discord.com/channels/136953735426473984/1206012724031787019/1206037333011341374
== Reuse Character based typing tests ==
TODO Explain how this is the least preferred of all the options for "real world" but probably where people will start anyway.
ef3b1489ec65d6cea26c270064f1e17f5a12d889
File:Machine configuration window.png
6
60
198
2024-02-12T21:35:19Z
Rice
1
wikitext
text/x-wiki
machine configuration window
76ca2b083f716a5957bc7e034697d50521989ed4
Configuration
0
61
199
2024-02-12T21:35:38Z
Rice
1
Created page with "'''Configure ➪ Machine ➪ Keymap''' You can remap how Plover handles keys on your machine. The available options are affected by your system and the machine you are using. <span id="what-is-a-keymap"></span> === What is a keymap? === A key map is.... <span id="remapping-keys-to-different-actions"></span> === Remapping Keys to Different Actions === The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys..."
wikitext
text/x-wiki
'''Configure ➪ Machine ➪ Keymap'''
You can remap how Plover handles keys on your machine.
The available options are affected by your system and the machine you are using.
<span id="what-is-a-keymap"></span>
=== What is a keymap? ===
A key map is....
<span id="remapping-keys-to-different-actions"></span>
=== Remapping Keys to Different Actions ===
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
<span id="disabling-keyboard-keys"></span>
=== Disabling Keyboard Keys ===
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
1685b777edc974704d389dfed8d674b1c23a5ce6
201
199
2024-02-12T21:37:45Z
Rice
1
wikitext
text/x-wiki
== Configuration ==
=== Configuring Your Keymap in Plover ===
'''Configure ➪ Machine ➪ Keymap'''
You can remap how Plover handles keys on your machine.
The available options are affected by your system and the machine you are using.
==== What is a keymap? ====
A key map is....
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
9853255eae0f2d3ef9263296002b01e18702df0b
202
201
2024-02-12T21:38:25Z
Rice
1
/* Configuring Your Keymap in Plover */
wikitext
text/x-wiki
== Configuration ==
=== Configuring the Machine Keymap ===
'''Configure ➪ Machine ➪ Keymap'''
You can remap how Plover handles keys on your machine.
The available options are affected by your system and the machine you are using.
==== What is a keymap? ====
A key map is....
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
71fad595741099076c979a2f3e6bdb3164d0678f
Main Dictionary Changes
0
62
205
2024-02-12T21:43:17Z
Rice
1
Created page with "== Main dictionary changes == === Notes on significant/breaking changes between releases === To suggest changes to the dictionary, please leave a comment on [https://github.com/openstenoproject/plover/issues/400 issue #400]. <span id="november-2017"></span> == November 2017 == * First version: weekly-v4.0.0.dev5+9.gba958374 * Commit hash: 06def5968 ''6,494 additions and 965 deletions'' * <code>A*UT</code> is now "auth". Use <code>OEUT</code> for the "..."
wikitext
text/x-wiki
== Main dictionary changes ==
=== Notes on significant/breaking changes between releases ===
To suggest changes to the dictionary, please leave a comment on [https://github.com/openstenoproject/plover/issues/400 issue #400].
<span id="november-2017"></span>
== November 2017 ==
* First version: weekly-v4.0.0.dev5+9.gba958374
* Commit hash: 06def5968
''6,494 additions and 965 deletions''
* <code>A*UT</code> is now "auth". Use <code>OEUT</code> for the "auto^" prefix.
* <code>HR*RT</code> to write "alright" (even though it isn't ''really'' a word :) )
* ex:
** Prefix "ex^" is <code>EBGS</code>
** Word "ex" is <code>*EBGS</code>
** Suffix "^ex" is <code>KWREBGS</code> or <code>SKWREBGS</code>
* <code>R-L</code> is a new brief for "really". Use <code>-RL</code> for "recall".
* <code>R-D</code> is a new brief for "ready".
* Phrases without asterisk go forward, with asterisk go backward. E.g., <code>SRU</code> is "have you" and <code>SR*U</code> is "you have". This is reversed from before.
* <code>KIRM</code>: confirm, <code>KORM</code>: conform
* <code>RE/HRAOEFD</code> is now "released", <code>RE/HREFD</code> or <code>RE/HRAO*EFD</code> is "relieved".
* <code>SEUGT</code> is now "sitting" and "signature" can be written with <code>SEURG</code>
* <code>SOER</code> is "sorry", <code>SOR</code> for "sore"
* <code>STEUBGS</code> is now "sticks", use <code>ST-BGS</code> for "statistics"
* <code>SPEBGT</code> is "suspect", use <code>R-PT</code> for "respect".
* New vocab: "m8", "vape", "sext", "dociousaliexpilisticfragicalirupes", "dayum", "covfefe", and many others.
fe4d3a60ae06bf1bbcfc3b874a908e7f5a0c34a6
Software
0
63
207
2024-02-12T21:47:21Z
Rice
1
Created page with "{| class="wikitable" |- ! Name ! Description ! Last update ! style="text-align: center;"| Windows ! style="text-align: center;"| macOS ! style="text-align: center;"| Linux ! style="text-align: center;"| Web ! style="text-align: center;"| Android ! style="text-align: center;"| iOS |- | [http://opensteno.org/ Plover] | Desktop application that allows anyone to use stenography to write on their computer | [https://github.com/openstenoproject/plover/releases Nov 2017] | styl..."
wikitext
text/x-wiki
{| class="wikitable"
|-
! Name
! Description
! Last update
! style="text-align: center;"| Windows
! style="text-align: center;"| macOS
! style="text-align: center;"| Linux
! style="text-align: center;"| Web
! style="text-align: center;"| Android
! style="text-align: center;"| iOS
|-
| [http://opensteno.org/ Plover]
| Desktop application that allows anyone to use stenography to write on their computer
| [https://github.com/openstenoproject/plover/releases Nov 2017]
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [http://play.typeracer.com/ Typeracer]
| Multiplayer online browser-based typing game
|
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| Plugins
| Give extra functionality to Plover. See separate table below.
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/quintopia/StenoTutor StenoTutor]
|
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [http://qwertysteno.com/Home/ QWERTYsteno]
|
|
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/SmackleFunky/StenoTray StenoTray]
|
| Mon Oct 31 2016 16:00:00 GMT-0700 (MST)
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/mkrnr/stenocomplete StenoComplete]
| Provides stroke suggestions based on the currently typed letters
| Mon Jul 31 2017 15:00:00 GMT-0700 (MST)
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://ploverdojo.appspot.com/ Plover Dojo]
| Qwerty-based training and drilling site for beginners
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://apps.ankiweb.net/ ANKI]
| Spaced repetition flashcard program. See list below.
| [https://en.m.wikipedia.org/wiki/Anki_(software) Aug 2017]
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
|-
| Memrise
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| StenoJig
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Stenomatic 9000
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Steno Learner
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Fly
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Steno Typer
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
|
|http://stenoknight.com/wiki/Practice
|
|
|
|
|
|
|
|}
c8a343b62f956b6e4202119cf674c240b7dd3b47
MediaWiki:Sidebar
8
5
208
204
2024-02-12T21:48:57Z
Rice
1
wikitext
text/x-wiki
* Plover
** mainpage|Main Page
** https://www.openstenoproject.org/plover|Plover Website (External)
** Beginner's_Guide|Beginner's Guide
** Installation_Guide|Installation Guide
** Configuration|Configuration
** Supported_Hardware|Supported Hardware
** Dictionary_Format|Dictionary Format
** Built-in_Tools|Built-in Tools
** Plugins|Plugins
** Invoke_Plover_from_the_Command_Line|Command Line
** Open_Steno_Project_Timeline|Open Steno Project Timeline
** Troubleshooting_Issues|Troubleshooting Issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_Stenography|Learning Stenography
** Brief_Ideas|Brief Ideas
** Software|Software
** Steno_Layouts_and_Supported_Languages|Steno Layouts & Supported Languages
** List_of_Available_Steno_Dictionaries|List of Available Steno Dictionaries
* Miscellaneous
** The_Steno_Community|The Steno Community
** https://www.openstenoproject.org/demo/|In-Browser Demo
** Other_Pages|Other Pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
d78bb1b0a8e827784916470ac0e3fa5301df3ecb
Using Anki for Learning Stenography
0
30
209
140
2024-02-12T21:51:19Z
Rice
1
add page
wikitext
text/x-wiki
<span id="what-is-anki"></span>
== What is Anki ==
Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control.
It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules.
== Setting up Anki ==
# Download from here: https://apps.ankiweb.net/
# [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]]
== Making your own deck ==
Making your own deck allows you to have greater control over the cards (e.g. what briefs)
The most basic way is to use the default deck and add cards to it. "Front" and "Back" can be whatever you want, though most people put the translation on the front and the steno stroke on the back.
=== Custom Fields ===
Instead of just "Front" and "Back", you might want more fields like "Pseudo Steno", "Stroke Diagram", "Notes" etc.
# [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for
# [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want
# Add the new fields to the card template (see [[#custom-cards|custom cards]])
=== Custom Cards ===
The default cards have the "Front" field, and when you answer it shows the "Back" field, as well as a reverse card. If you want to show more fields, you'll have to customise your card.
See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this.
Particular things that are useful for steno are:
* [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech]
<pre>{{tts en_US:Front}}</pre>
Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices.
* [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling]
in the card:
<pre><span class="diagram">{{Strokes}}</span></pre>
in the styling:
<syntaxhighlight lang="css">.diagram {
font-family: "Stenodisplay Classic"
}</syntaxhighlight>
There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields.
The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck.
* [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input]
<pre>{{type:Back}}</pre>
Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes.
You might want a separate field for checking, since you may want prefix/suffix cards like "{^ing}" but what you type out is actually "ing". Anki does not use this to pick the rating of the card.
It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory.
/* options are disc, circle, square, none */
-webkit-text-security: disc;
== Pre-made Decks ==
* [https://github.com/rchern/steno-anki rchern/steno-anki]
** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons
** Top 10K Words
** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries
** Other community-contributed shared decks
** Script to generate cards from text file
* [https://github.com/jladdjr/anki-decks jladdjr/anki-decks]
** Top 10,000 Project Gutenberg words
** Basic sounds
* [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes]
** A small deck with cards on steno order and phonetic strokes
* [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover]
** Complete plover dictionary
<span id="useful-anki-add-ons"></span>
== Useful Anki Add-ons ==
[https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -> Add-ons -> Get Add-ons.
* [https://ankiweb.net/shared/info/1765221856 Automatic Scoring]
** Automatically selects the difficulty of the card based on how long it took to answer it
** You still have to press "enter" to confirm, so you still have full control
** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be.
** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected.
* [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** Needed for some [[#useful-plover-extensions|useful plover extensions]]
* [https://ankiweb.net/shared/info/754868802 Find Missing Words]
** Paste in a block of text and this will help you find words you don't have cards for
* [https://ankiweb.net/shared/info/817108664 Anki Simulator]
** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want)
* [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version)
** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there.
* [https://ankiweb.net/shared/info/295889520 Mini Format Pack]
** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting
* [https://ankiweb.net/shared/info/1436550454 AwesomeTTS]
** Gives you access to a range of TTS voices and human recorded voices (Forvo).
* [https://github.com/antistic/anki-copy-selection-field Copy selection field]
** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type.
<span id="useful-plover-extensions"></span>
== Useful Plover Extensions ==
* [https://github.com/antistic/plover_cards Plover Cards]
** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki.
** Command to quickly bring up the last X words you typed and their suggestions in an Anki "Add Card" window
** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect]
* [https://github.com/fourshade/spectra_lexer Spectra Lexer]
** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke.
b7f910e7c503511aa02e78bec47a6f2bb7567333
Other pages
0
24
210
206
2024-02-12T21:52:04Z
Rice
1
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Main Dictionary Changes]]
* [[Measuring Your Real World Writing Speed]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
* [[Using Anki for Learning Stenography]]
9c1f3025ae02b6e330874a2d20fbba8011d87d57
248
210
2024-02-19T18:59:38Z
Rice
1
add updating v3 dictionaries page link
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Main Dictionary Changes]]
* [[Measuring Your Real World Writing Speed]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
* [[Updating V3 Dictionaries]]
* [[Using Anki for Learning Stenography]]
0df14dbdee6567431336bc85f4ee6d6941499ecb
Dictionary format
0
11
211
126
2024-02-12T21:59:21Z
Rice
1
add supported dictionary file formats
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== JSON and RTF/CRE ==
Plover supports two types of dictionaries:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
== Supported Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
=== json ===
The standard Plover format. Described at [[Dictionary format]].
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
[[Category:Plover]]
f627481552e1641a584e047f09a069134ebef18b
212
211
2024-02-12T22:02:21Z
Rice
1
/* Dictionary File Formats */
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
Plover supports two types of dictionaries by default:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== Unsupported File Formats ===
==== dct (aka Stentura, Jet, MDB, Microsoft Access) ====
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
==== sgdct (CaseCat) ====
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
a9ebbd420eda7d6183bfeb424f192ea7de48a830
213
212
2024-02-12T22:02:55Z
Rice
1
/* Unsupported File Formats */
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
Plover supports two types of dictionaries by default:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== Other File Formats ===
==== dct (aka Stentura, Jet, MDB, Microsoft Access) ====
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
==== sgdct (CaseCat) ====
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><nowiki><br /></nowiki><code>- minus</code><nowiki><br /></nowiki><code>[ bracketleft</code><nowiki><br /></nowiki><code>] bracketright</code><nowiki><br /></nowiki><code>/ slash</code><nowiki><br /></nowiki><code>\ backslash</code><nowiki><br /></nowiki><code>' quoteright</code><nowiki><br /></nowiki><code>, comma</code><nowiki><br /></nowiki><code>. period</code><nowiki><br /></nowiki><code>; semicolon</code><nowiki><br /></nowiki><code>~ asciitilde</code><nowiki><br /></nowiki><code>^ asciicircum</code><nowiki><br /></nowiki><code>` quoteleft</code><nowiki><br /></nowiki>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code><nowiki><br /></nowiki>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code><nowiki><br /></nowiki>'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code><nowiki><br /></nowiki>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
fafb0f2ffca5d4f2346b64bcc204ef35b7e26e53
224
213
2024-02-13T22:48:53Z
Rice
1
/* Shortcut Key Names */ fix formatting
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
Plover supports two types of dictionaries by default:
* '''JSON''' (the default and recommended format), and
* '''RTF/CRE'''.
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== Other File Formats ===
==== dct (aka Stentura, Jet, MDB, Microsoft Access) ====
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
==== sgdct (CaseCat) ====
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
19a238a307ea09a31d12ee2112245006bdf7f11e
241
224
2024-02-19T18:44:50Z
Rice
1
/* Dictionary File Formats */
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at <nowiki>http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm</nowiki> .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
dab15c75ccafcf6111165b25fcf5e808f5a967ee
242
241
2024-02-19T18:45:09Z
Rice
1
/* rtf (aka CRE) */
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
f95610801d5945c2625f59187372b1e85f3ee9a7
243
242
2024-02-19T18:47:12Z
Rice
1
/* Dictionary File Formats */
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.<blockquote>'''Note:''' With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.</blockquote>
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
c7efc1f275172e5d8757fb2c1bca27ab94852afa
MediaWiki:Common.css
8
6
214
70
2024-02-12T22:06:16Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-menu-heading{
font-weight: bold;
}
670aed0bca139ee27455e2e3d7c7fad9014bbf6b
215
214
2024-02-12T22:06:43Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-menu-heading{
font-weight: bold!important;
}
6b5674ae7357e661456567db5bb60f8cbf84916e
216
215
2024-02-12T22:07:03Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-menu-heading{
font-weight: bold!important;
color: black!important!
}
c806c9df53477d949538aa55c98a42ebc2b513ca
217
216
2024-02-12T22:08:26Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading{
font-weight: bold!important;
color: black!important!
}
8afc8c2de6b01fbe6b2c9c2a4e829fead2f9d67e
218
217
2024-02-12T22:08:49Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading{
font-weight: bold!important;
color: black!important!;
}
ed51c46633984d59722e356ebe137a5813e15bee
219
218
2024-02-12T22:09:02Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-menu-heading{
font-weight: bold!important;
color: black!important!;
}
18fd059d92eed4cc630dc0bff15530b8ed04d8d0
220
219
2024-02-12T22:09:43Z
Rice
1
css
text/css
/* CSS placed here will be applied to all skins */
img{
max-width: 100%;
}
.vector-feature-zebra-design-disabled .vector-pinnable-element .vector-menu-heading, .vector-feature-zebra-design-disabled .vector-dropdown-content .vector-menu-heading {
color: #000;
font-weight: bold!important;
}
e862f301f74fc635edd47a68905420f16bea851b
Plugins
0
45
221
185
2024-02-12T22:19:08Z
Aerick
9
Tweak instructions for manually installing plugins
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL to the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
# Install git
#* You may need to restart after installing git
# Open a command-line window (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to manually add <code>git</code> to your path (search for guides along the lines of "how to add git to path windows/mac").
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string. For plugins on PyPI, this is the name of the package. For plugins in git repos, this will look something like <code>git+<nowiki>https://github.com/user/plugin</nowiki></code> (use the URL you found in the previous step).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
11196fff077b39eb798f62e1ecac16ece972fe8a
237
221
2024-02-15T16:02:28Z
Aerick
9
add link to installing git, rephrase some parts
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
There are a number of ways to check if a plugin is on PyPI. The easiest is to search for it by going to this link: <nowiki>https://pypi.org/search/</nowiki>. For example, searching for <code>plover lapwing aio</code> shows that this plugin is listed on PyPI in the image below:
If you have verified that your plugin is available, take note of the name (in this case, it is <code>plover-lapwing-aio</code>)
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI do the following steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string. For plugins on PyPI, this is the name of the package. For plugins in git repos, this will look something like <code>git+<nowiki>https://github.com/user/plugin</nowiki></code> (use the URL you found in the previous step).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
ed46531a6a5b19738980043ba9e9158fab6cb7dd
251
237
2024-02-20T05:35:48Z
Aerick
9
add PyPI picture, rephrase
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
90bc3d5fc2a61a15950c7904362295c56442d2fc
253
251
2024-02-20T13:43:15Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
[[File:Installing pluginses.mp4|frameless]]
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
9c7ddee7c4ec46e5072934507a41cb8fedc7087c
254
253
2024-02-20T14:05:30Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
90bc3d5fc2a61a15950c7904362295c56442d2fc
256
254
2024-02-20T14:19:33Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
[[File:Plugins.mkv]]
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
48646ce8ba3a0335c198b349e1d88cc118dd704c
257
256
2024-02-20T14:22:45Z
Rice
1
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable (see instructions at [[invoke Plover from the Command Line]]). Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
----<!-- Will later add pictures, gifs, etc to make this easier for end users. ideally, windows users will find all the information on this page without needing to click to the other link. -->
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
ee0d2bb2d425eb5b3bd46fd4a61745ab9b3ab2e1
258
257
2024-02-20T14:33:09Z
Aerick
9
/* Plugins not on PyPI */
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
Open a PowerShell window in the same location as the Plover executable. Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for instructions on opening PowerShell in the right location and installing the plugin:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
c5089aa7229f20b9a5c29a15cd59c616089dd980
Talk:Configuration
1
64
222
2024-02-13T15:32:08Z
Rice
1
Created page with "* This page should have sections for each of the configuration pages * Machine config section needs sub-sections for each machine type (at least the default machines)"
wikitext
text/x-wiki
* This page should have sections for each of the configuration pages
* Machine config section needs sub-sections for each machine type (at least the default machines)
78311495ab2b472d037670f3a7c53f1b45d09c32
223
222
2024-02-13T15:32:43Z
Rice
1
wikitext
text/x-wiki
= TODO =
* This page should have sections for each of the configuration pages
* Machine config section needs sub-sections for each machine type (at least the default machines)
7e5e4ce409035a97034838720d03827259153f9f
233
223
2024-02-14T00:20:32Z
Rice
1
Blanked the page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Planck.jpg
6
65
225
2024-02-13T22:56:19Z
Rice
1
wikitext
text/x-wiki
Planck keyboard
ddb57787c99f402ec35961cb389e15335f0c3b18
Supported hardware
0
10
226
134
2024-02-13T22:57:02Z
Rice
1
Fix broken planck image
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YAKS is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
1fc9b1360c47d0fcd7c49de7326d1c38e684cdfa
File:Configure Menu Location.png
6
66
227
2024-02-13T23:10:43Z
Rice
1
wikitext
text/x-wiki
Configure Menu Location
194d05d233fa238db261b2d0bf71b0e4217e6159
Configuration
0
61
228
202
2024-02-13T23:22:17Z
Rice
1
add interface section
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Machine Tab ==
=== Keymap ===
'''Configure ➪ Machine ➪ Keymap'''
You can remap how Plover handles keys on your machine.
The available options are affected by your system and the machine you are using.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
a441d416a7d6d76323592a5c12dc1a916f563e17
229
228
2024-02-14T00:04:09Z
Rice
1
add sections for other machine types
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
TODO
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
TODO
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
TODO
== Output Tab ==
TODO
== Plugins Tab ==
TODO
== System Tab ==
TODO
3e518377e8ce58760ee62361ef7d4979d4900304
230
229
2024-02-14T00:06:48Z
Rice
1
/* Logging Tab */
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
TODO
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
TODO
== Output Tab ==
TODO
== Plugins Tab ==
TODO
== System Tab ==
TODO
fbab304b87a682cb80e76ebc4184e7dfa2dd4fc7
231
230
2024-02-14T00:07:38Z
Rice
1
/* Options Section */
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
TODO
== Output Tab ==
TODO
== Plugins Tab ==
TODO
== System Tab ==
TODO
ca903c34355064628bdb546b43da2521c5d1185e
232
231
2024-02-14T00:19:16Z
Rice
1
/* Machine: Treal */
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
==== Keymap section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
== Output Tab ==
{| class="wikitable"
|+
|'''Enable at start'''
|Determines whether Plover will start at system boot
|-
|'''Start attached'''
|Determines whether Plover will start without a starting space
|-
|'''Start capitalized'''
|Determines whether Plover will start with the first letter capitalized
|-
|'''Space placement'''
|Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output'''
|-
|'''Undo levels'''
|Determines how many strokes can be undone with <code>*</code>
|-
|'''Key press delay (ms)'''
|Determines how many milliseconds Plover will wait before outputting the translation of your strokes
|}
== Plugins Tab ==
Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here.
== System Tab ==
Allows the user to switch to another stenography system.
f8d1f106be8c966eb51eb519c89cb992790517ef
234
232
2024-02-14T00:22:03Z
Rice
1
/* Logging Tab */
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser.
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
==== Keymap section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
== Output Tab ==
{| class="wikitable"
|+
|'''Enable at start'''
|Determines whether Plover will start at system boot
|-
|'''Start attached'''
|Determines whether Plover will start without a starting space
|-
|'''Start capitalized'''
|Determines whether Plover will start with the first letter capitalized
|-
|'''Space placement'''
|Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output'''
|-
|'''Undo levels'''
|Determines how many strokes can be undone with <code>*</code>
|-
|'''Key press delay (ms)'''
|Determines how many milliseconds Plover will wait before outputting the translation of your strokes
|}
== Plugins Tab ==
Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here.
== System Tab ==
Allows the user to switch to another stenography system.
6d4ec50c1ab875aaa8aa6d4de66681b112482a60
MediaWiki:Common.js
8
67
235
2024-02-14T00:47:56Z
Rice
1
Created page with "/* Any JavaScript here will be loaded for all users on every page load. */ <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-EP373H3TLB"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-EP373H3TLB'); </script>"
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EP373H3TLB"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-EP373H3TLB');
</script>
bb1930d823259a8f350f92d987036d7612fa7839
236
235
2024-02-14T00:54:08Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
7850587e5c59a0259c9c96f81797dcf059b3cac9
Installation Guide
0
8
238
149
2024-02-17T15:01:01Z
Aerick
9
update download links to latest version
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
0a7e53bb9d66ff90f56a08a92a8cdedbc0717230
Plover Wiki
0
3
239
100
2024-02-19T18:04:34Z
Rice
1
remove unnecessary word
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|left]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
2c7b72c942cca79a0e3bd5475e20c9c63313cf35
Roadmap for Learning Stenography
0
68
240
2024-02-19T18:36:16Z
Rice
1
Created page with "== Early Intermediate Learners (60 - 80 WPM) == '''Vocab Building:''' * StenoJig: ** Most used words exercise. When I reach near to 70 words per minute on an exercise, up the number of new words by 100. ** MonkeyType Quotes: short quotes and repeat until nearly 70 WPM with high accuracy ** Digits test: time to get good with the numbers! '''Speed Building:''' * YouTube: ** Practice dictation at various speeds ** Type along to songs * TypeRacer ** Compete :race_car: * S..."
wikitext
text/x-wiki
== Early Intermediate Learners (60 - 80 WPM) ==
'''Vocab Building:'''
* StenoJig:
** Most used words exercise. When I reach near to 70 words per minute on an exercise, up the number of new words by 100.
** MonkeyType Quotes: short quotes and repeat until nearly 70 WPM with high accuracy
** Digits test: time to get good with the numbers!
'''Speed Building:'''
* YouTube:
** Practice dictation at various speeds
** Type along to songs
* TypeRacer
** Compete :race_car:
* StenoJig:
** Learn Plover exercises to target specific -meme groups
'''Dictionary Building:'''
* User.json
** Define useful briefs for my lexicon
** Create Anki flashcards for briefs
ab95cecf2ddc90ad3de9b0b9c844ff12998d533b
File:Plover version check 1.png
6
69
244
2024-02-19T18:55:32Z
Rice
1
wikitext
text/x-wiki
plover version check 1
2768d1467c8be204908898e490d5799b9bb4bd71
File:Open config folder gui.png
6
70
245
2024-02-19T18:56:28Z
Rice
1
wikitext
text/x-wiki
open config folder gui
82877d51496633549d92cb6d614bf3666543b24e
File:Local app data plover location windows.png
6
71
246
2024-02-19T18:57:24Z
Rice
1
wikitext
text/x-wiki
local app data plover location windows
ea70d4cea9db165cfd0845e73d0cd04a88e828db
Updating V3 Dictionaries
0
72
247
2024-02-19T18:58:17Z
Rice
1
Created page with "= Upgrading V3 Dictionaries = If you've installed Plover version 3 but have later switched to version 4, it is recommended you update the dictionaries to stay up to date with the current learning resources. Since Plover does not remove the dictionaries on uninstallation, it is necessary to do this manually. == Check your Plover version before continuing == [[File:Plover version check 1.png|frameless|678x678px]] To check if you've installed Plover version 3, the main P..."
wikitext
text/x-wiki
= Upgrading V3 Dictionaries =
If you've installed Plover version 3 but have later switched to version 4, it is recommended you update the dictionaries to stay up to date with the current learning resources. Since Plover does not remove the dictionaries on uninstallation, it is necessary to do this manually.
== Check your Plover version before continuing ==
[[File:Plover version check 1.png|frameless|678x678px]]
To check if you've installed Plover version 3, the main Plover window and the Plover Configuration window will look like the image above—with the main Plover window having a Configure and About button. Clicking the About button will reveal detailed information on the version of Plover you're running. If it looks like this, you'll have to [https://github.com/openstenoproject/plover/releases/latest download and install the latest version of Plover] before continuing.
== Steps (recommended) ==
First ensure that Plover version 4 is installed.
On later versions of Plover version 4, you can open Plover's config folder via the option in the file menu:
[[File:Open config folder gui.png|frameless|650x650px]]
In this folder you will find the dictionaries. Simply delete <code>main.json</code> and <code>commands.json</code>. You will then need to either restart Plover, or reconnect the machine so that Plover will replace it with its own version.
Alternatively, you can also download an up-to-date version of the Plover dictionaries ([https://raw.githubusercontent.com/openstenoproject/plover/master/plover/assets/main.json main.json], [https://raw.githubusercontent.com/openstenoproject/plover/master/plover/assets/commands.json commands.json]) (either open the link and save the file, or right click the link and press "save link as"), then replace the old dictionaries in the config folder. You will then need to either restart Plover, or reconnect the machine to refresh the dictionaries.
== Location of the config folder (advanced users) ==
The exact location of this folder depends on the operating system, and it is as follows.
=== Windows ===
<code>%LOCALAPPDATA%\plover\plover</code>
In Windows 10 and later you can copy and paste the path <code>%LOCALAPPDATA%\plover\plover</code> into the Start menu search field and clicking Open.
[[File:Local app data plover location windows.png|frameless|782x782px]]
Alternatively, you can use the shortcut <code>Windows Logo + R</code> to open the Run dialog box and
# Pasting the <code>%LOCALAPPDATA%\plover\plover</code> path described earlier into the Open field.
# Click OK.
For example the full path may be <code>C:\Users\<Username>\AppData\Local\plover\plover</code> after entering the <code>%LOCALAPPDATA%\plover\plover</code> location described above.
=== Mac ===
<code>~/Library/Application Support/plover</code>
# On your Mac, from the Finder, do any of the following:
#* ''Using your mouse or trackpad:'' Navigate to Go > Go to Folder...
#* ''Using keyboard shortcuts:'' Reveal the "Go to Folder..." prompt by using the shortcut <code>Command-Shift-G</code>.
# In the "Go to the folder:" field enter <code>~/Library/Application Support/plover</code> as the path. You may wish to copy and paste this path.
# Click Go.
# The Finder window should now reveal your plover configuration directory for the user you're currently logged into.
The full path is equivalent to navigating to <code>/Users/<Username>/Library/Application Support/plover</code>.
=== Linux (AppImage) ===
==== dev8 and before: ====
<code>~/.local/share/plover</code>
<blockquote>NOTE: this location will still work for later versions of Plover due to backwards compatibility, as long as there's no <code>plover.cfg</code> file in the latter location.</blockquote>
==== dev9 and after: ====
<code>~/.config/plover</code>
fc55b0c31ddf7b673dd4cb95e33b1b0db89cd759
Beginner's Guide
0
4
249
147
2024-02-19T20:57:17Z
Rice
1
update old link
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
5f8826ba02f8f0a1bfe10e55d53f43352e9f612c
File:2024-02-19 21-15.png
6
73
250
2024-02-20T05:17:17Z
Aerick
9
wikitext
text/x-wiki
plover-touchscreen-stenotype on PyPI
bd99ff29c2463d5972f432803d194740c820a4c7
File:Installing pluginses.mp4
6
74
252
2024-02-20T13:42:47Z
Rice
1
wikitext
text/x-wiki
installing pluginses
074e916a12e228d68e4fcd54e7fd03d4162dcf1b
Plugins
0
45
259
258
2024-02-20T15:20:36Z
Aerick
9
add Linux video for installing plugins
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to Tools → Plugins Manager†
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
† Note: If you don't see the menu option for the plugins manager, it may not be installed. For developers, install the plugins manager by running <code>pip install plover-plugins-manager</code> in the command line. Otherwise, try uninstalling Plover and [[Installation Guide|re-installing a recent version]] (try Plover v4.0.0.dev5 or newer) to automatically add the plugin manager.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "Open file location"
# In the folder, hold down Shift and right click
# Select "Open PowerShell window here"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
e4cf75a357c336d8a0cc9ece58b4c37420513de9
260
259
2024-02-20T15:33:56Z
Aerick
9
/* Via the built-in Plugins Manager (recommended) */
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "Open file location"
# In the folder, hold down Shift and right click
# Select "Open PowerShell window here"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
937d87b7c68fea7c3a5fd4ec70b1d4109bbcc937
262
260
2024-02-20T15:57:04Z
Aerick
9
Add types of plugins along with instructions for set up
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "Open file location"
# In the folder, hold down Shift and right click
# Select "Open PowerShell window here"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
aa4501264a66bb736e8bf04de17d4adf636aa4de
265
262
2024-02-20T17:43:20Z
Rice
1
testing videos
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "Open file location"
# In the folder, hold down Shift and right click
# Select "Open PowerShell window here"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
[[File:Installing pluginses.mp4]]
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
33648b9102c14dc3bf760e548f08f17ecb48333d
266
265
2024-02-20T17:44:42Z
Rice
1
Reverted edit by [[Special:Contributions/Rice|Rice]] ([[User talk:Rice|talk]]) to last revision by [[User:Aerick|Aerick]]
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "Open file location"
# In the folder, hold down Shift and right click
# Select "Open PowerShell window here"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
aa4501264a66bb736e8bf04de17d4adf636aa4de
Talk:Plugins
1
76
261
2024-02-20T15:35:01Z
Aerick
9
Created page with "== Plugins manager usage screenshots == Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video?"
wikitext
text/x-wiki
== Plugins manager usage screenshots ==
Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video?
ff2b73917f31b26636223658c6b1637af1953149
Learning stenography
0
17
263
157
2024-02-20T17:02:36Z
Aerick
9
add section on choosing a theory
wikitext
text/x-wiki
== Suggested Learning Route ==
<blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote>
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[#available-steno-theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
<blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote>
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
be30428d8d5d5a47a2dd90fdad9520b08ec34db8
264
263
2024-02-20T17:03:24Z
Aerick
9
fix choose a theory link
wikitext
text/x-wiki
== Suggested Learning Route ==
<blockquote>⚠️ This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.</blockquote>
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
<blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote>
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
2e6d1238d9237b14a07bc7fce44d12bbefa5d018
286
264
2024-02-22T15:57:15Z
Aerick
9
Info box
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
<blockquote>'''NOTE:''' ideally, there would also be steno theories that take into account differences in dialects, but unfortunately, virtually all steno theories are based on General North American English.</blockquote>
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous which makes writing complicated words easier. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
e9947581e31d1685797d129d97d1d1eccb924b64
287
286
2024-02-22T16:03:49Z
Aerick
9
reword theory selection, add info box
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
50ab29b43ff4baf4375762e29cc9ce3f92ffc97b
File:Dialog-warning.svg
6
77
267
2024-02-21T20:49:54Z
Nat
11
Tango icon.
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
File:Dialog-information.svg
6
78
268
2024-02-21T20:53:44Z
Nat
11
Tango icon.
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
Template:Box
10
79
269
2024-02-21T21:36:12Z
Nat
11
Created page with "<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]] <div style="display:inline-block"> {{{text|Lorem ipsum dolor sit amet.}}} </div> </div>"
wikitext
text/x-wiki
<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]]
<div style="display:inline-block">
{{{text|Lorem ipsum dolor sit amet.}}}
</div>
</div>
6def41849f4d1be0188c6059c4adba5eb5ae65e5
274
269
2024-02-21T21:47:30Z
Nat
11
wikitext
text/x-wiki
<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]]
<div>
{{{text|Lorem ipsum dolor sit amet wwww wwwww wwwww wwwww wwww.}}}
</div>
</div>
32235f9b6583eafafb5406c810fd9928adec74a3
275
274
2024-02-21T21:47:47Z
Nat
11
wikitext
text/x-wiki
<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px;min-height:48px;position:relative">[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]]
<div>
{{{text|Lorem ipsum dolor sit amet.}}}
</div>
</div>
f0a13c92b1e7dcb32d6aed58675898290db4c04d
276
275
2024-02-21T21:58:49Z
Nat
11
wikitext
text/x-wiki
<div style="border:1px solid {{{border|#ccc}}};background:{{{background|transparent}}};padding:8px 4px 8px 56px;min-height:48px;position:relative">
<div style="position:absolute;left:4px;top:8px">
[[File:{{{image|Dialog-information.svg}}}|format=frameless|left|48px]]
</div>
{{{text|Lorem ipsum dolor sit amet.}}}
</div>
fa6e4b8ecf52a562d802a1a6087905d75b255bc3
Template:Info
10
80
270
2024-02-21T21:39:07Z
Nat
11
Created page with "{{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }}"
wikitext
text/x-wiki
{{Box
|text = {{{text|Lorem ipsum dolor sit amet.}}}
|image = Dialog-information.svg
|border = #8090ff
|background = #eafaff
}}
64a5e500348da87e2c155f97c32ee098847e54f7
283
270
2024-02-21T22:15:18Z
Nat
11
wikitext
text/x-wiki
{{Box
|text = {{{text|Lorem ipsum dolor sit amet.}}}
|image = Dialog-information.png
|border = #8090ff
|background = #eafaff
}}
7fcbf6be67a2cb3827bdfde31644e298e4c5a0b6
Template:Warning
10
81
271
2024-02-21T21:39:48Z
Nat
11
Created page with "{{Box |text = {{{text|Lorem ipsum dolor sit amet.}}} |image = Dialog-information.svg |border = #8090ff |background = #eafaff }}"
wikitext
text/x-wiki
{{Box
|text = {{{text|Lorem ipsum dolor sit amet.}}}
|image = Dialog-information.svg
|border = #8090ff
|background = #eafaff
}}
64a5e500348da87e2c155f97c32ee098847e54f7
272
271
2024-02-21T21:42:22Z
Nat
11
wikitext
text/x-wiki
{{Box
|text = {{{text|Lorem ipsum dolor sit amet.}}}
|image = Dialog-warning.svg
|border = #ff8040
|background = #fcffee
}}
c34b398e5485f3c196fd0a25509ce8e6cb5c5bb0
282
272
2024-02-21T22:14:49Z
Nat
11
wikitext
text/x-wiki
{{Box
|text = {{{text|Lorem ipsum dolor sit amet.}}}
|image = Dialog-warning.png
|border = #ff8040
|background = #fcffee
}}
be2a08e4a8ca7aa9b523f0e03f034057f6b48f5e
Beginner's Guide
0
4
273
249
2024-02-21T21:43:42Z
Nat
11
/* Write “Hello World” */
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
b411beed2616e7a2da2c2589841318409b938677
277
273
2024-02-21T22:02:52Z
Nat
11
/* Write “Hello World” */
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
08abb64c663e0734c0cd3f7b92f250358d1a86cc
296
277
2024-02-22T17:07:57Z
Nat
11
/* Use a machine designed for use with Plover */ Notepad Key input delay mention
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide 🚀]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
3ad7bcb61d3293fcda8d6dd1d98ebc99dd85ff49
300
296
2024-02-23T18:53:41Z
Nat
11
/* Download and Install Plover */ remove rocket emoji (why was that there in the beginning?)
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [[Installation_Guide|Download and install Plover with the Installation Guide]]
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
d30c7393bad1cbe70f7e4a9be7b6567225ca8426
301
300
2024-02-23T18:54:16Z
Nat
11
/* Download and Install Plover */ and embolden instead
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
56cc56846980b19156ea826fc9c943c104b63aeb
File:Dialog-information.png
6
82
278
2024-02-21T22:10:51Z
Nat
11
Tango icon.
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
279
278
2024-02-21T22:11:36Z
Nat
11
Nat moved page [[File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png]] to [[File:Dialog-information.png]]: Unrenamed title
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png
6
83
280
2024-02-21T22:11:36Z
Nat
11
Nat moved page [[File:1B3841D7-7A46-4E4C-95E9-8F2C5F90729C.png]] to [[File:Dialog-information.png]]: Unrenamed title
wikitext
text/x-wiki
#REDIRECT [[File:Dialog-information.png]]
87ae156b713f66a33730591a86983d7395360272
File:Dialog-warning.png
6
84
281
2024-02-21T22:14:07Z
Nat
11
Tango icon.
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
Installation Guide
0
8
284
238
2024-02-22T15:49:33Z
Aerick
9
/* Install Plover on Linux */
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
2b3d47d7e9f3b2bc43313acef7be1fa14e857461
285
284
2024-02-22T15:50:22Z
Aerick
9
/* Error relating to xcb */
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, read <code>Plover.app</code> by repeating step 5.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
70bca8297fed72304ee95b791522adca3b31bb3a
297
285
2024-02-22T19:48:36Z
Aerick
9
/* Download Plover for Mac here */
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ==
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
= Install Plover on Mac =
<span id="download-plover-for-mac-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
= Other installation methods =
<span id="other-releases"></span>
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
= Troubleshooting =
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
7fac393acf0e05aacbe8c853b80bc11f73760731
Plover Wiki
0
3
288
239
2024-02-22T16:05:05Z
Nat
11
moved Dolores to the right
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
979ebbee37c1d40389f809d2bc41e9ac9a16e601
User:Nat
2
85
289
2024-02-22T16:37:09Z
Nat
11
Created page with "<iframe src="https://example.com/"></iframe>"
wikitext
text/x-wiki
<iframe src="https://example.com/"></iframe>
5fafaa86f9a4671ee9dc41273d715fa3483ae0d4
290
289
2024-02-22T16:37:40Z
Nat
11
wikitext
text/x-wiki
<style>body { transform: scale(50%) }</style>
04b3561b83de1db1a86d9b3b9217206b887e9d66
291
290
2024-02-22T16:42:58Z
Nat
11
wikitext
text/x-wiki
{{#time:%U}}
2633b06b08a0d901aa502ffe6d7de24d5e9e46c2
292
291
2024-02-22T16:43:11Z
Nat
11
wikitext
text/x-wiki
{{#time: %U}}
fe6d518baba930aefb0359b0746ba2a0b32f84c6
293
292
2024-02-22T16:57:04Z
Nat
11
wikitext
text/x-wiki
<div style="font:72px 'Liberation Mono',Consolas,monospace;font-weight:bold">
<div style="display:inline-block;transform:skewY(10deg)">n</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">t</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">l</div><div style="display:inline-block;transform:skewY(-10deg)">i</div><div style="display:inline-block;transform:skewY(10deg)">e</div>
</div>
854a615a6157588cbf201727badd2170d3ad7e14
File:Plover key delay.png
6
86
294
2024-02-22T17:04:57Z
Nat
11
Demonstration of Plover's key delay setting
wikitext
text/x-wiki
== Summary ==
Demonstration of Plover's key delay setting
1733408b7f9c1618fb39bdf5ed999b801fdf355b
295
294
2024-02-22T17:05:23Z
Nat
11
/* Summary */
wikitext
text/x-wiki
== Summary ==
Demonstration of Plover's key delay setting (via Harri on Discord).
0795c1f3c5ca68ccb481330206f53162ebfa2f8d
Troubleshooting issues
0
14
298
127
2024-02-23T18:44:43Z
Nat
11
/* General */ Change blockquote to info
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line Invoke Plover from the command line]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [https://github.com/openstenoproject/plover/wiki/Glossary#arpeggiate arpeggiating] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually installing plugins]<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [https://github.com/openstenoproject/plover/wiki/Invoke-Plover-from-the-command-line invoke Plover in the terminal] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span>
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
0a77f7cbf5428a936b02f20b5bc9891f39422c02
The steno community
0
21
299
156
2024-02-23T18:48:39Z
Nat
11
/* Open Steno Project */ embolden links and add emdashes
wikitext
text/x-wiki
There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online.
== Open Steno Project ==
* '''[https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] —''' Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief.
* '''[https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group]'''
* '''[https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] —''' The Plover Google Group. Subscribe for updates and conversation.
* '''[https://github.com/openstenoproject/plover/discussions GitHub Discussions]'''
* '''[http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover]'''
== General Stenography ==
* Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students]
* Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started.
** [https://twitter.com/morinted/lists/steno Steno List]
** [https://twitter.com/hashtag/stenolife?src=hash #stenolife]
4908f6a919ef2a5148553b406c405b74c7f5736e
File:Office-calendar.png
6
87
302
2024-02-23T19:03:29Z
Nat
11
Tango icon.
wikitext
text/x-wiki
== Summary ==
Tango icon.
aa3ab99eda63c178281633bd25e55feeb802e8c0
File:Gnome-appointment-missed.png
6
88
303
2024-02-23T19:13:41Z
Nat
11
An icon from the [[https://www.gnome.org/ GNOME Project]]
wikitext
text/x-wiki
== Summary ==
An icon from the [[https://www.gnome.org/ GNOME Project]]
23cd239d340ad02deede1ac2d2835903b0aca516
304
303
2024-02-23T19:13:54Z
Nat
11
/* Summary */
wikitext
text/x-wiki
== Summary ==
An icon from the [https://www.gnome.org/ GNOME Project]
6719b1e2e00077cbf2d1f4fec5c6aee23eebdbb9
Template:Out of date
10
89
305
2024-02-23T19:14:20Z
Nat
11
Created page with "{{Box |border = #ff9060 |background = #ffe0c0 |image = Gnome-appointment-missed.png |text = The contents of this {{{2|article}}} are '''out of date''', and need to be updated. <span style="font-size:.8em">''(dated {{{1}}})''</span> }}"
wikitext
text/x-wiki
{{Box
|border = #ff9060
|background = #ffe0c0
|image = Gnome-appointment-missed.png
|text = The contents of this {{{2|article}}} are '''out of date''', and need to be updated. <span style="font-size:.8em">''(dated {{{1}}})''</span>
}}
d56bc157467ec06935e7e4fd74ddac8a8e899eff
Dictionary format
0
11
306
243
2024-02-23T19:19:18Z
Nat
11
/* Dictionary priority */ replace blockquote with info
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.<blockquote>'''Note:''' With Plover 4.0+, there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.</blockquote>
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
cf4ec14ce3782153d310b10d3c85015ef59c9e6c
307
306
2024-02-23T19:21:06Z
Nat
11
/* Dictionary File Formats */ replace blockquote with info
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{{Note|text=there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
cf918c61e4b93a6278fadfea5c1cd392b6600e95
308
307
2024-02-23T19:21:41Z
Nat
11
/* Dictionary File Formats */ oops
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{{Info|text=there is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
fe200b7f50942012ee6bc12e81580dadb0eb8a35
Dictionary format
0
11
309
308
2024-02-23T19:25:34Z
Nat
11
/* Dictionary File Formats */ i hate my job
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
<code>{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}</code>
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
cac2c83f06371eba672d75fbd1beef5d3081241e
Test
0
90
310
2024-02-23T23:30:09Z
Rice
1
Created page with "testing"
wikitext
text/x-wiki
testing
dc724af18fbdd4e59189f5fe768a5f8311527050
311
310
2024-02-23T23:30:24Z
Rice
1
wikitext
text/x-wiki
testing
testing 2
81d51f035bd55547e0623e0ef873fd29a9fe2142
312
311
2024-02-23T23:31:37Z
Rice
1
Blanked the page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Plover Wiki
0
3
313
288
2024-02-24T05:55:04Z
Nat
11
initial translation - partial
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılımıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
d11939857ed4de3326c469f4d37fa069a0b969d6
314
313
2024-02-24T07:27:31Z
Nat
11
tümen çeviri
wikitext
text/x-wiki
= Plover Vikisi =
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
f015151c9f65eed77b07fb8b0210d6fd5fb41aea
315
314
2024-02-24T07:31:57Z
Nat
11
Undo revision [[Special:Diff/314|314]] by [[Special:Contributions/Nat|Nat]] ([[User talk:Nat|talk]])
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılımıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
d11939857ed4de3326c469f4d37fa069a0b969d6
316
315
2024-02-24T07:32:23Z
Nat
11
Undo revision [[Special:Diff/313|313]] by [[Special:Contributions/Nat|Nat]] ([[User talk:Nat|talk]])
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
979ebbee37c1d40389f809d2bc41e9ac9a16e601
320
316
2024-02-24T07:42:38Z
Nat
11
mark for translation
wikitext
text/x-wiki
<translate>
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
2e83725b354b8301fc9224362f98161e2657999d
321
320
2024-02-24T07:43:54Z
Nat
11
Marked this version for translation
wikitext
text/x-wiki
<translate>
<!--T:1-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:2-->
Plover runs on Windows, macOS, and Linux.
<!--T:3-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:4-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:5-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:6-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
9afb9fb17284217cd248a2398b17c1999071d4b2
339
321
2024-02-24T09:30:42Z
Nat
11
wikitext
text/x-wiki
<languages/>
<translate>
<!--T:1-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:2-->
Plover runs on Windows, macOS, and Linux.
<!--T:3-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:4-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:5-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:6-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
c372c5d999b13788ab01c6b63bf2e6324b108f8e
340
339
2024-02-24T09:36:15Z
Nat
11
wikitext
text/x-wiki
<languages/> __NOEDITSECTION__
<translate>
<!--T:1-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:2-->
Plover runs on Windows, macOS, and Linux.
<!--T:3-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:4-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:5-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:6-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
43e1195819df0bd2a8668140e5f7006c93622c41
341
340
2024-02-24T09:40:49Z
Nat
11
remove translate stuff - i am not having a good time
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
979ebbee37c1d40389f809d2bc41e9ac9a16e601
Tr/Plover Vikisi
0
91
317
2024-02-24T07:35:36Z
Nat
11
ilk çeviri
wikitext
text/x-wiki
= Plover Vikisi =
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
d2192b76d2414178488a33d92d3e29923db4858e
318
317
2024-02-24T07:37:29Z
Nat
11
düplike başlık kaldırıldı
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Beginner's Guide|'''Plover Acemi Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
6c8de1c8e48520e7f585e65b9faed737cbfb314a
319
318
2024-02-24T07:39:29Z
Nat
11
kılavuz linkini değiştir - ölü link, şu anlık
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
b80a60f93d69c0afa9d89051851f3d3f8caba62c
345
319
2024-02-24T12:31:22Z
Nat
11
türkçe çeviri templatei ekle
wikitext
text/x-wiki
{{Tr-translation|Plover Wiki}}
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
e8de728db5345ac19468999488eac23224549136
Translations:Plover Wiki/Page display title/en
1198
92
322
2024-02-24T07:43:54Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover Wiki
b1d64585a964b839fdc202be8f0972b3c7d725cb
Translations:Plover Wiki/1/en
1198
93
323
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
82e07d08c340b8d51e7cc4cdd89c70ac41185754
Translations:Plover Wiki/2/en
1198
94
324
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover runs on Windows, macOS, and Linux.
7497c88568ce9d2eebbcaf7261a5fe64135e370a
Translations:Plover Wiki/3/en
1198
95
325
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
0214e56a3ef2ddc96e898f0ce3ec217d068b39c1
Translations:Plover Wiki/4/en
1198
96
326
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
fe682bfd8628f4ca3fc8dc06ac47beb7a79ed36f
Translations:Plover Wiki/5/en
1198
97
327
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
3ed8ea3097341f4f42b1e9b5ee8e8da7e33e5cc2
Translations:Plover Wiki/6/en
1198
98
328
2024-02-24T07:43:55Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
500ef81e8fccd80e1dbcd26813d502457ee9d256
Translations:Plover Wiki/Page display title/tr
1198
99
329
2024-02-24T07:44:11Z
Nat
11
Created page with "Plover Vikisi"
wikitext
text/x-wiki
Plover Vikisi
927ceea3a9c77c535cc1e4a3281dba8951bdcf0f
Translations:Plover Wiki/1/tr
1198
100
330
2024-02-24T07:45:01Z
Nat
11
Created page with "[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar."
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
e59b1db548fce2a3b91b463ad72251675e7b87a3
Translations:Plover Wiki/2/tr
1198
101
331
2024-02-24T07:45:15Z
Nat
11
Created page with "Plover Windows, Linux ve macOS üzerinde çalışır."
wikitext
text/x-wiki
Plover Windows, Linux ve macOS üzerinde çalışır.
2f53929dbede8d0773a005a927559b1dc1c14135
Translations:Plover Wiki/3/tr
1198
102
332
2024-02-24T07:45:42Z
Nat
11
Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]"
wikitext
text/x-wiki
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
ce9b05d4ac3c83b39bddfe94e33937bf26a4f0bc
Translations:Plover Wiki/4/tr
1198
103
333
2024-02-24T07:46:01Z
Nat
11
Created page with "== Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir."
wikitext
text/x-wiki
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
a02daa0140e60dbfd663c20d56ca3e6ecb7849ef
Translations:Plover Wiki/5/tr
1198
104
334
2024-02-24T07:46:25Z
Nat
11
Created page with "== Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır."
wikitext
text/x-wiki
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
18cc4a31858c46cbcdba92e03c1fd916186cf273
Translations:Plover Wiki/6/tr
1198
105
335
2024-02-24T07:46:59Z
Nat
11
Created page with "[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz."
wikitext
text/x-wiki
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
8ce58c4f55206c20552304d32dd29d610cc09c13
Plover Wiki/en
0
107
337
2024-02-24T08:50:46Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
c32b2aed61b979407543448eb296e76c8ae0f941
User:Nat
2
85
338
293
2024-02-24T09:25:55Z
Nat
11
wikitext
text/x-wiki
<div style="font:72px 'Liberation Mono',Consolas,monospace;font-weight:bold">
<div style="display:inline-block;transform:skewY(10deg)">n</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">t</div><div style="display:inline-block;transform:skewY(-10deg)">a</div><div style="display:inline-block;transform:skewY(10deg)">l</div><div style="display:inline-block;transform:skewY(-10deg)">i</div><div style="display:inline-block;transform:skewY(10deg)">e</div>
</div>
It also seems I am an administrator here.
7b9ffc0ddb7ab192b006b50211d9dec3cf9ac140
File:Flag of Turkey.png
6
108
342
2024-02-24T10:13:25Z
Nat
11
National flag of Turkey in 48x32px. Public domain.
wikitext
text/x-wiki
== Summary ==
National flag of Turkey in 48x32px. Public domain.
68cc85a9dfbb4e4ca59ef19409788d0163c9c1bd
Template:Tr-translation
10
109
343
2024-02-24T10:15:04Z
Nat
11
Created page with "{{Box |image = Flag_of_Turkey.png |text = Bu sayfa, [[{{{1}}}]] başlıklı İngilizce sayfasından Türkçe'ye çevirilmiştir.'' }}"
wikitext
text/x-wiki
{{Box
|image = Flag_of_Turkey.png
|text = Bu sayfa, [[{{{1}}}]] başlıklı İngilizce sayfasından Türkçe'ye çevirilmiştir.''
}}
13f6bd67895946781d8d2534f143cc62a339dd66
Tr/Yeni Başlayan Kılavuzu
0
110
344
2024-02-24T11:07:25Z
Nat
11
ilk yarı çeviri
wikitext
text/x-wiki
{{tr-translation|Beginner's Guide}}
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
1d900d6d0e98e4389b71b6a8f055636749287a58
349
344
2024-02-24T12:56:10Z
Nat
11
çeviri tam değil!
wikitext
text/x-wiki
{{Tr-translation|Beginner's Guide}}
{{Tr incomplete translation}}
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
730377e3eddfb1c62dcb3cd2fd48bf3eca0eb2c7
351
349
2024-02-24T13:01:18Z
Nat
11
/* Vuruş yuvarlama */ ingilizce paragraf kalıntısını kaldır
wikitext
text/x-wiki
{{Tr-translation|Beginner's Guide}}
{{Tr incomplete translation}}
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
d6d54a50bf2a80eb6a65817edfdad0c5d8ee4c5a
352
351
2024-02-24T13:27:13Z
Nat
11
/* Arpej */ ingilizce paragraf kalıntısını kaldır
wikitext
text/x-wiki
{{Tr-translation|Beginner's Guide}}
{{Tr incomplete translation}}
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum-Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Troubleshooting Issues|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
54e3b2f6e13a968a2c1098e54ff5aecbf58504d0
353
352
2024-02-24T13:30:07Z
Nat
11
/* Plover'ı Yükleyin ve Kurun */ linkleri değiştir (şimdilik ölü)
wikitext
text/x-wiki
{{Tr-translation|Beginner's Guide}}
{{Tr incomplete translation}}
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
97d021d2239be7bb4683479746cce322a46ac479
Tr/Terimler
0
111
346
2024-02-24T12:49:33Z
Nat
11
ilk yarı çeviri
wikitext
text/x-wiki
{{Tr-translation|Glossary}}
Bu terimler dizini, steno topluluğunda karşınıza çıkabilecek terimler hakkında yardım edecektir.
{{Warning|text=[[Glossary|Bu terimlerin orijinal halleri İngilizcedir]]. Buna ilişkin, Türkçe'de nasıl anılacaklarına dair düzgün bir konsensüs, hatta konsensüsü oluşturacak kadar büyük bir Türkçe steno topluluğu yoktur. Çevirmen(ler) tarafından en uygun görülen çeviriler yazılmış, yanlarına İngilizceleri de eklenmiştir. Dikkat edin.}}
=== Arpej (Arpeggiate) ===
Standart bir klavye ile bir [[Glossary#vuruş|stroke]] vuruşu tuşları tek tek girmeyi sağlayan bir Plover özelliği. Caps Lock ve Yapışkan Tuşlar'a benzer. Aktifleştirildiğinde, varsayılan arpej başlatma/sonlandırma tuşu boşluktur. Arpeje başlamak için boşluk tuşuna basın, ardından vuruşu oluşturan tuşlara basın ve, ve son olarak yeniden boşluk tuşuna basarak arpeji bitirip vuruşu gönderin. "Arpeggiate" kutucuğu, <code>Configure > Machine</code>'den (açılır listesinden "Keyboard" seçili halde) aşağıda görüldüğü gibi işaretlenmelidir.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
"Arpej" terimi bir müzik akorunun her notasını tek tek çalmak ile eşdeğerdir. Klavye tuşlarının nasıl steno tuşlarına uyarlandığına dair görseller için [[Learning Stenography#Cheat Sheets|kopya kağıtlarına]] bakabilirsiniz.
=== Kısaltma (Brief) ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Akor (Chord) ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Uyuşmazlık (Conflict) ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Kaydırma (Dragging) ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mecburi (Mandatory) ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Yanlış Vuruş (Misstroke) ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline (Anahat) ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Philly Kayması (Philly Shift) ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Gölgeleme (Shadowing) ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Yığma (Stacking) ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Sözlüğü (Steno Dictionary) ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Sırası (Steno Order) ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Vuruş (Stroke) ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Teorisi (Steno Theory) ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Ek katlama veya sıkıştırma (Suffix folding or tucking) ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Çevirmeyiş (Untranslate) ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Kelime Ucu (Word Boundary) ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Uzun Yazma (Write Out) ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Yazma (Writing) ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
f894ffc0db27d37094f312741b226e81251f74d5
348
346
2024-02-24T12:55:42Z
Nat
11
çeviri tam değil!
wikitext
text/x-wiki
{{Tr-translation|Glossary}}
{{Tr incomplete translation}}
Bu terimler dizini, steno topluluğunda karşınıza çıkabilecek terimler hakkında yardım edecektir.
{{Warning|text=[[Glossary|Bu terimlerin orijinal halleri İngilizcedir]]. Buna ilişkin, Türkçe'de nasıl anılacaklarına dair düzgün bir konsensüs, hatta konsensüsü oluşturacak kadar büyük bir Türkçe steno topluluğu yoktur. Çevirmen(ler) tarafından en uygun görülen çeviriler yazılmış, yanlarına İngilizceleri de eklenmiştir. Dikkat edin.}}
=== Arpej (Arpeggiate) ===
Standart bir klavye ile bir [[Glossary#vuruş|stroke]] vuruşu tuşları tek tek girmeyi sağlayan bir Plover özelliği. Caps Lock ve Yapışkan Tuşlar'a benzer. Aktifleştirildiğinde, varsayılan arpej başlatma/sonlandırma tuşu boşluktur. Arpeje başlamak için boşluk tuşuna basın, ardından vuruşu oluşturan tuşlara basın ve, ve son olarak yeniden boşluk tuşuna basarak arpeji bitirip vuruşu gönderin. "Arpeggiate" kutucuğu, <code>Configure > Machine</code>'den (açılır listesinden "Keyboard" seçili halde) aşağıda görüldüğü gibi işaretlenmelidir.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
"Arpej" terimi bir müzik akorunun her notasını tek tek çalmak ile eşdeğerdir. Klavye tuşlarının nasıl steno tuşlarına uyarlandığına dair görseller için [[Learning Stenography#Cheat Sheets|kopya kağıtlarına]] bakabilirsiniz.
=== Kısaltma (Brief) ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Akor (Chord) ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Uyuşmazlık (Conflict) ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Kaydırma (Dragging) ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mecburi (Mandatory) ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Yanlış Vuruş (Misstroke) ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline (Anahat) ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Philly Kayması (Philly Shift) ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Gölgeleme (Shadowing) ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Yığma (Stacking) ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Sözlüğü (Steno Dictionary) ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a <nowiki>[[steno theory|Glossary#steno-theory]]</nowiki>, this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Sırası (Steno Order) ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Vuruş (Stroke) ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Teorisi (Steno Theory) ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Ek katlama veya sıkıştırma (Suffix folding or tucking) ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Çevirmeyiş (Untranslate) ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Kelime Ucu (Word Boundary) ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Uzun Yazma (Write Out) ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Yazma (Writing) ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
2743d0d97291c0d32bc6f47edff6f61c547c2dfe
Template:Tr incomplete translation
10
112
347
2024-02-24T12:54:31Z
Nat
11
Created page with "{{Warning|text=Bu sayfanın '''çevirisi tamamlanmamıştır'''. Tam gözükse bile bazı bölümlerde Türkçe'den çıkış ve girişler görebilirsiniz. Katkılar nezaketle karşılanır.}}"
wikitext
text/x-wiki
{{Warning|text=Bu sayfanın '''çevirisi tamamlanmamıştır'''. Tam gözükse bile bazı bölümlerde Türkçe'den çıkış ve girişler görebilirsiniz. Katkılar nezaketle karşılanır.}}
7ea6ce11b0d1f7944a87578be772ab8eefb8a47f
Tr/
0
113
350
2024-02-24T12:59:07Z
Nat
11
yönlendir: Tr/Plover Vikisi
wikitext
text/x-wiki
#REDIRECT [[Tr/Plover Vikisi]]
4ace82073e9292fd20c8a6ea6b3b88a9f2046f41
Installation Guide
0
8
354
297
2024-02-24T13:37:41Z
Nat
11
shift heading hierarchy
wikitext
text/x-wiki
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
ed2374924581952c661ea9beccf644b1611c32b9
User:Nat/Türkçe Steno Kaynakları/Hedefler
2
114
355
2024-02-24T15:45:50Z
Nat
11
ilk düzenleme
wikitext
text/x-wiki
== Hedefler ==
* ''Plover Wiki'' çevirisi.
* ''Art of Chording'' çevirisi.
* ''Learn Plover'' çevirisi?
5ab6433cc43959a559ee01dc6e6910e6b38f611b
356
355
2024-02-24T15:46:19Z
Nat
11
Nat moved page [[Talk:Tr/Türkçe Steno Kaynakları/Hedefler]] to [[Tr/Türkçe Steno Kaynakları/Hedefler]]: Misspelled title
wikitext
text/x-wiki
== Hedefler ==
* ''Plover Wiki'' çevirisi.
* ''Art of Chording'' çevirisi.
* ''Learn Plover'' çevirisi?
5ab6433cc43959a559ee01dc6e6910e6b38f611b
358
356
2024-02-24T15:47:07Z
Nat
11
/* Hedefler */ başlığı kaldır
wikitext
text/x-wiki
* ''Plover Wiki'' çevirisi.
* ''Art of Chording'' çevirisi.
* ''Learn Plover'' çevirisi?
8e52f9a4ea7c10b228aa83f74818d22da1a54983
359
358
2024-02-24T15:51:10Z
Nat
11
Nat moved page [[Tr/Türkçe Steno Kaynakları/Hedefler]] to [[User:Nat/Türkçe Steno Kaynakları/Hedefler]] without leaving a redirect
wikitext
text/x-wiki
* ''Plover Wiki'' çevirisi.
* ''Art of Chording'' çevirisi.
* ''Learn Plover'' çevirisi?
8e52f9a4ea7c10b228aa83f74818d22da1a54983
Talk:Tr/Türkçe Steno Kaynakları/Hedefler
1
115
357
2024-02-24T15:46:19Z
Nat
11
Nat moved page [[Talk:Tr/Türkçe Steno Kaynakları/Hedefler]] to [[Tr/Türkçe Steno Kaynakları/Hedefler]]: Misspelled title
wikitext
text/x-wiki
#REDIRECT [[Tr/Türkçe Steno Kaynakları/Hedefler]]
75ccc00836c6d2345c9653b338168b05ddd146f6
User:Nat/Türkçe Steno Kaynakları/Kaynaklar
2
116
360
2024-02-24T15:55:08Z
Nat
11
Created page with "* [[Plover Wiki]] » [[Tr/Plover Vikisi|Plover Vikisi]] ''(yeni başlandı)''"
wikitext
text/x-wiki
* [[Plover Wiki]] » [[Tr/Plover Vikisi|Plover Vikisi]] ''(yeni başlandı)''
bb0b07cdfd1aca7acf9a4105e9134d3f5fc0acc1
User:Nat/Türkçe Steno Kaynakları/Hedefler
2
114
361
359
2024-02-24T15:56:20Z
Nat
11
wikitext
text/x-wiki
* ''Plover Wiki'' çevirisini tamamla.
* ''Art of Chording'' çevirisine başla.
* ''Learn Plover'' çevirisi başla. (?)
63284a1bdcd428f33ec7f6c60544e87bf36afff0
User:Nat/Türkçe Steno Kaynakları
2
117
362
2024-02-24T16:01:02Z
Nat
11
Created page with "Bu sayfa, Türkçe'ye başlıca bizzat kendim çevirdiğim kaynakların bir derlemesidir. <div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Kaynaklar</h2> {{:{{FULLPAGENAME}}/Kaynaklar}} </div><div style="display:inline-block;width:50%;vertical-align:top"> <h2 style="text-align:center">Hedefler</h2> {{:{{FULLPAGENAME}}/Hedefler}} </div>"
wikitext
text/x-wiki
Bu sayfa, Türkçe'ye başlıca bizzat kendim çevirdiğim kaynakların bir derlemesidir.
<div style="display:inline-block;width:50%;vertical-align:top">
<h2 style="text-align:center">Kaynaklar</h2>
{{:{{FULLPAGENAME}}/Kaynaklar}}
</div><div style="display:inline-block;width:50%;vertical-align:top">
<h2 style="text-align:center">Hedefler</h2>
{{:{{FULLPAGENAME}}/Hedefler}}
</div>
cd262204e3a35d84a8c7b51a7e522d696dd7e50f
Tr/Art of Chording
0
118
363
2024-02-24T16:06:46Z
Nat
11
ilk çeviri
wikitext
text/x-wiki
''[https://www.artofchording.com/ (orijinali Ted Morin tarafından, CC BY-SA 4.0)]''
Kendinize ücretsiz olarak stenografi öğretin. Steno ve Plover kullanarak bir klavyedekinden daha hızlı ve ergonomik yazın.
<div style="text-align:center;font-size:1.5em">'''[[{{FULLPAGENAME}}/Başlangıç|Okumaya Başla »]]'''</div>
0645e0aa40d3230679aa71b7108d06bd8af168e6
371
363
2024-02-25T10:17:35Z
Nat
11
not ekle
wikitext
text/x-wiki
{{Info|text=İşbu yazı, '''İngilizce Plover steno teorisi''' için bir klavuzdur. Orijinali Ted Morin tarafından CC BY-SA 4.0 lisansı altında yayımlanmıştır.}}
Kendinize ücretsiz olarak stenografi öğretin. Steno ve Plover kullanarak bir klavyedekinden daha hızlı ve ergonomik yazın.
<div style="text-align:center;font-size:1.5em">'''[[{{FULLPAGENAME}}/Başlangıç|Okumaya Başla »]]'''</div>
8a85d595fbe46f6cd6baf5b281448e6664f44cf8
Tr/Art of Chording/Başlangıç
0
119
364
2024-02-24T16:16:41Z
Nat
11
yönlendir: Tr/Art of Chording/Başlangıç/Hoşgeldiniz
wikitext
text/x-wiki
#REDIRECT [[Tr/Art of Chording/Başlangıç/Hoşgeldiniz]]
044cf1fc4c8e2b63f840c145bd7589e1da8f39a0
Template:Tr/Geri ileri
10
120
365
2024-02-24T16:29:12Z
Nat
11
Created page with "{|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto" |Geri<br />'''« [[{{{1}}}]]''' |style="text-align:right"|İleri<br />'''{{{2}}} »''' |}"
wikitext
text/x-wiki
{|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto"
|Geri<br />'''« [[{{{1}}}]]'''
|style="text-align:right"|İleri<br />'''{{{2}}} »'''
|}
f16f5647ce59bd12554afc56f2ba81c73a4a5202
366
365
2024-02-24T16:32:36Z
Nat
11
yanlış yazım düzeltildi
wikitext
text/x-wiki
{|style="border:1px solid #aaa;background:#e5efff;width:100%;max-width:400px;margin:0 auto"
|Geri<br />'''« {{{1}}}'''
|style="text-align:right"|İleri<br />'''{{{2}}} »'''
|}
bf20e8776f6d8b2266f15f1e3842c0ad8f35fc9a
Tr/Art of Chording/Başlangıç/Hoş geldiniz
0
121
367
2024-02-24T16:33:27Z
Nat
11
ilk çeviri
wikitext
text/x-wiki
== Hoş geldiniz ==
Art of Chording'e göz attığınız için teşekkürler. Bu kitabın hedefi, herkesin stenografi (kısaca ''steno'') öğrenebilmesini sağlamak.
=== Stenografi ===
Stenografi, bir bilgisayara yazmanın en hızlı yöntemidir. Mahkeme yazmanları, yakın 1800'lerden beri gerçek zamanlı olarak insan konuşmasının yazılı kayıtlarını tutmuşlardır.
Bir steno makinesi, klavye kullanımının yerini tamamen alabilir.
Bu kitap, hedefi ''stenografiyi herkese açmak'' olan [https://openstenoproject.org/ Open Steno Projesi'nin] bir parçasıdır.
{{Tr/Geri ileri|[[Tr/Art of Chording|Anasayfa]]|[[Tr/Art of Chording/Başlangıç/Steno nasıl çalışır?|Steno nasıl çalışır?]]}}
4d3f147f30c6cd5b6e7ec02e70f415695146d49d
Installation Guide
0
8
368
354
2024-02-25T04:30:27Z
Aerick
9
Change system preferences to system settings
wikitext
text/x-wiki
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu
# Open <code>System Settings > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
36347bccd635e9b65a13932037cedf1c906061f0
369
368
2024-02-25T04:30:54Z
Aerick
9
/* Download Plover for Mac here */
wikitext
text/x-wiki
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
6e03faa86d111a9b36ef6e7c2a5bd5574a4fedb2
370
369
2024-02-25T04:39:23Z
Aerick
9
Update accessibility settings location
wikitext
text/x-wiki
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
4a84edc0d96445f12dadf1083e9ca2f1378d2dff
Template:Tr çeviri sorunlu
10
122
372
2024-02-25T10:42:35Z
Nat
11
Created page with "<sup>[çeviri sorunlu ([[{{TALKPAGENAME}}|tartış]])]</sup>"
wikitext
text/x-wiki
<sup>[çeviri sorunlu ([[{{TALKPAGENAME}}|tartış]])]</sup>
1a4e5450c95dfaa1bd794e427372785253ea086e
Tr/Kurulum Kılavuzu
0
123
373
2024-02-25T10:49:02Z
Nat
11
çeviriyi geliştir
wikitext
text/x-wiki
{{Tr-translation|Installation Guide}}
{{Tr incomplete translation}}
== Windows Üzerinde Plover Kurulumu ==
Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir.
<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] ===
Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir.
<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] ===
Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın.
<span id="install-plover-on-mac"></span>
== Mac Üzerinde Plover Kurulumu ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] ===
# <code>.dmg</code> dosyasını açın.
# Yerleştirilen bellekten, <code>Plover.app</code> dosyasını <code>Applications</code> klasörüne aktarın.
# <code>Applications</code>{{Tr çeviri sorunlu}} klasörünü açın.
# Plover üzerine Kontrol tuşuna basarken tıklayın, ve kısayol menüsünden <code>Open</code>'ı{{Tr çeviri sorunlu}} seçin
# <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>'i{{Tr çeviri sorunlu}} açın.
# <code>+</code> düğmesine basın, uygulama listenize gidin ve <code>Plover.app</code>'i seçin.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
470c3d465bc469edf843c7ffa622757165577d06
Plover Wiki
0
3
374
341
2024-02-25T14:26:26Z
Astra
8
add translation tags
wikitext
text/x-wiki
<translate>
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
4d0cf4d30ff5a960c6235531a6d9e543636026e5
375
374
2024-02-25T14:27:05Z
Astra
8
Marked this version for translation
wikitext
text/x-wiki
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
74cd4766f92dbed6332c188a2a80d1dbb7ae086f
395
375
2024-02-25T15:07:44Z
Rice
1
wikitext
text/x-wiki
<languages/>
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
700154cc1d590b061725d9d82c69cf1d04111b9d
Translations:Plover Wiki/7/en
1198
124
376
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
82e07d08c340b8d51e7cc4cdd89c70ac41185754
Translations:Plover Wiki/8/en
1198
125
377
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover runs on Windows, macOS, and Linux.
7497c88568ce9d2eebbcaf7261a5fe64135e370a
Translations:Plover Wiki/9/en
1198
126
378
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
0214e56a3ef2ddc96e898f0ce3ec217d068b39c1
Translations:Plover Wiki/10/en
1198
127
379
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
fe682bfd8628f4ca3fc8dc06ac47beb7a79ed36f
Translations:Plover Wiki/11/en
1198
128
380
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
3ed8ea3097341f4f42b1e9b5ee8e8da7e33e5cc2
Translations:Plover Wiki/12/en
1198
129
381
2024-02-25T14:28:58Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
500ef81e8fccd80e1dbcd26813d502457ee9d256
Plover Wiki/en
0
107
382
337
2024-02-25T14:29:01Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
979ebbee37c1d40389f809d2bc41e9ac9a16e601
Translations:Plover Wiki/7/fr
1198
130
383
2024-02-25T14:31:01Z
Astra
8
Created page with "[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]] Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute."
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
da78347da8e62015361bfbd01ffc91ab0dd220a6
Translations:Plover Wiki/8/fr
1198
131
384
2024-02-25T14:31:20Z
Astra
8
Created page with "Plover fonctionne sous Windows, macOS et Linux."
wikitext
text/x-wiki
Plover fonctionne sous Windows, macOS et Linux.
8361584003b4df778ca226aeba843e89120364dd
Plover Wiki/fr
0
132
385
2024-02-25T14:33:53Z
Astra
8
Created page with "Plover fonctionne sous Windows, macOS et Linux."
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
Plover fonctionne sous Windows, macOS et Linux.
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</div>
90fde1f4557e6ba8a6dbb914e0acbf2aea56e72a
393
385
2024-02-25T14:45:13Z
Astra
8
Created page with "== Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée."
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
Plover fonctionne sous Windows, macOS et Linux.
[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]
== Le projet Open Steno ==
Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte.
== Contribuer au Wiki ==
Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée.
[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam.
cbcbcbf53f82a28eeeb1d457ca2b7476aa32f25c
Translations:Plover Wiki/9/fr
1198
133
386
2024-02-25T14:34:41Z
Astra
8
Created page with "[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]"
wikitext
text/x-wiki
[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]
dd1089dd4fc0be94830004c34770a297532c5a64
Translations:Plover Wiki/11/fr
1198
135
388
2024-02-25T14:37:38Z
Astra
8
Created page with "== Contribuer au Wiki == Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée."
wikitext
text/x-wiki
== Contribuer au Wiki ==
Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée.
66651fce351cb5e320a06d7ac5fb3c837be338ee
Translations:Plover Wiki/12/fr
1198
136
389
2024-02-25T14:37:52Z
Astra
8
Created page with "[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam."
wikitext
text/x-wiki
[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam.
b48c2a07672f0cbdbc67b974328cad6bb9634bb8
Translations:Plover Wiki/Page display title/fr
1198
137
391
2024-02-25T14:38:57Z
Astra
8
Created page with "Wiki Plover"
wikitext
text/x-wiki
Wiki Plover
086ab4d8a1b47ee50618b4d15982f8c091061311
Plover Wiki/tr
0
138
392
2024-02-25T14:44:38Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover runs on Windows, macOS, and Linux.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</div>
a3511e476ec1864235cd7885c1c3018113d2a1fe
402
392
2024-02-25T15:10:42Z
Nat
11
Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]"
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
e222a39acf346b722e96a2375181f56574772dfd
User:Astra
2
139
394
2024-02-25T14:56:47Z
Astra
8
Created page with "i do, in fact, exist"
wikitext
text/x-wiki
i do, in fact, exist
ac99f77cc46b8b495c877b500951874be2e8bc9d
Translations:Plover Wiki/7/tr
1198
140
396
2024-02-25T15:09:35Z
Nat
11
Created page with "[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]] Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar."
wikitext
text/x-wiki
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
e59b1db548fce2a3b91b463ad72251675e7b87a3
Translations:Plover Wiki/8/tr
1198
141
397
2024-02-25T15:09:39Z
Nat
11
Created page with "Plover Windows, Linux ve macOS üzerinde çalışır."
wikitext
text/x-wiki
Plover Windows, Linux ve macOS üzerinde çalışır.
2f53929dbede8d0773a005a927559b1dc1c14135
Translations:Plover Wiki/9/tr
1198
142
398
2024-02-25T15:09:44Z
Nat
11
Created page with "[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]"
wikitext
text/x-wiki
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
ce9b05d4ac3c83b39bddfe94e33937bf26a4f0bc
Translations:Plover Wiki/10/tr
1198
143
399
2024-02-25T15:09:49Z
Nat
11
Created page with "== Open Steno Project == Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir."
wikitext
text/x-wiki
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
a02daa0140e60dbfd663c20d56ca3e6ecb7849ef
Translations:Plover Wiki/11/tr
1198
144
400
2024-02-25T15:09:58Z
Nat
11
Created page with "== Vikiye Katkıda Bulunma == Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır."
wikitext
text/x-wiki
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
18cc4a31858c46cbcdba92e03c1fd916186cf273
Translations:Plover Wiki/12/tr
1198
145
401
2024-02-25T15:10:05Z
Nat
11
Created page with "[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz."
wikitext
text/x-wiki
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
8ce58c4f55206c20552304d32dd29d610cc09c13
Beginner's Guide
0
4
403
301
2024-02-25T15:12:21Z
Nat
11
wrap in <translate>
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<languages />
<translate>
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
</translate>
8b6ba35f712364e5475d7c56cc63353c93e15e9a
404
403
2024-02-25T15:13:39Z
Nat
11
Marked this version for translation
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<languages />
<translate>
<!--T:1-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:2-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:3-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:4-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:5-->
[[Category:Plover]]
</translate>
af995b7fbd8739b15af740865f87e3b71cb5dba0
Translations:Beginner's Guide/Page display title/en
1198
146
405
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Beginner's Guide
7e2f928b206ffd6c256181a6066a6731b801e247
Translations:Beginner's Guide/1/en
1198
147
406
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
bf4c4922e52584b4e228acd32756f33039437524
Translations:Beginner's Guide/2/en
1198
148
407
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
cf5bfcde7424f5bcfd8adc0a1918983dfd79a714
Translations:Beginner's Guide/3/en
1198
149
408
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
'''We recommend learning either Plover theory or Lapwing theory.'''
3b3fa6138ec422cca7f53090c2c031205b41979e
Translations:Beginner's Guide/4/en
1198
150
409
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
72ef471faa08dac31704a5f573b28e505098c8ca
Translations:Beginner's Guide/5/en
1198
151
410
2024-02-25T15:14:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Category:Plover]]
19217f70dd61937300e5a44a34bca8d3ef06ff85
Beginner's Guide/en
0
152
411
2024-02-25T15:14:22Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<languages />
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
fea6c493e4d4792e87f59b806686562f79f47157
Beginner's Guide
0
4
412
404
2024-02-25T15:15:15Z
Nat
11
wrap in <translate> '''correctly'''
wikitext
text/x-wiki
<languages />
<translate>
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
</translate>
1e8097e30b5c87c35c46d3415caa309c7586d8a5
413
412
2024-02-25T15:16:33Z
Nat
11
Marked this version for translation
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
# Run Plover.
# Click the Output: '''Enable''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
80bf0646f16a712ae877239914736db8edd50dcb
Translations:Beginner's Guide/6/en
1198
153
414
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
4e65bb79464ee4de1088c759cb3fa9ef83dd50a2
Translations:Beginner's Guide/7/en
1198
154
415
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
4f50514be06cb3a9dfd396147c65f6b8459995b6
Translations:Beginner's Guide/8/en
1198
155
416
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover works on '''Windows, Mac, and Linux'''.
9e789d605f7fe2159872b4b80b88cc6171d41564
Translations:Beginner's Guide/9/en
1198
156
417
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
9725c6d11f471439955c7c3c2accbf2749f8517d
Translations:Beginner's Guide/10/en
1198
157
418
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
313003212b252f26824e0f6925c35b8a8d36d3ae
Translations:Beginner's Guide/11/en
1198
158
419
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Connect a compatible keyboard or stenography machine ==
febe12379c54388c86a488bd580567bfa47d0988
Translations:Beginner's Guide/12/en
1198
159
420
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
f6b343adb68acd55c96d2c52bcd265f676fb513c
Translations:Beginner's Guide/13/en
1198
160
421
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
ad2c1d7f1ab1b25f6470a2a90c7c31232e4fa443
Translations:Beginner's Guide/14/en
1198
161
422
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
68fa775bef6702ba2091b942bad9ced226507c8b
Translations:Beginner's Guide/15/en
1198
162
423
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
a26fa095cf270b5ff98e47e00e01ff2a8197c291
Translations:Beginner's Guide/16/en
1198
163
424
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="arpeggiate"></span>
==== Arpeggiate ====
781e36e377efb0f6169e86fe0068b564e73ec579
Translations:Beginner's Guide/17/en
1198
164
425
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
34a81902290eafb583efd381e15672c5b83c67ef
Translations:Beginner's Guide/18/en
1198
165
426
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
03a358a8e83539c8e772bee7b92251f788bc0299
Translations:Beginner's Guide/19/en
1198
166
427
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
802ac87c0cdb0199d5b750acff17a3b6e134e07e
Translations:Beginner's Guide/20/en
1198
167
428
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
e163c8d7e284a4524152940fb29db906c65a4a35
Translations:Beginner's Guide/21/en
1198
168
429
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
194f0851ecb2b6161e5090e94055c1ee581f8745
Translations:Beginner's Guide/22/en
1198
169
430
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
86514ed06cb8dbb3f2cdcd1fbc0583076ef331f8
Translations:Beginner's Guide/23/en
1198
170
431
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
e267ca65be9f6f526549af848410bc804cd27fd7
Translations:Beginner's Guide/24/en
1198
171
432
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
c6ebb27d42194ad4244b0a6a41ba268ac6caac36
Translations:Beginner's Guide/25/en
1198
172
433
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
7c90702f484e0a8393e25afa52caa21438716c5e
Translations:Beginner's Guide/26/en
1198
173
434
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
bed3037d007744c65db60288febed76d8c1904c1
Translations:Beginner's Guide/27/en
1198
174
435
2024-02-25T15:16:33Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
50bdae83ac0d45f6bf59fb453044eb99c4e7e956
Translations:Beginner's Guide/28/en
1198
175
436
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
976a68f118a6f89b615d81bae8fdc05bf8dd5cfa
Translations:Beginner's Guide/29/en
1198
176
437
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
462bb7b632e7740a4f04a4e331d0a2860ff66283
Translations:Beginner's Guide/30/en
1198
177
438
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
840f20564509c67b295508e114bd31af5282fcf8
Translations:Beginner's Guide/31/en
1198
178
439
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
53a1639278b7d022e8ac1cd8744b2b6db2ff7c30
Translations:Beginner's Guide/32/en
1198
179
440
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
76db256b8b8b4e8be6082470343797bd254f2ab3
Translations:Beginner's Guide/33/en
1198
180
441
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
ffa8bda8115a0e043f88312b71d7e1021833991f
Translations:Beginner's Guide/34/en
1198
181
442
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
cf425f3c49d8d485b8532b1694a56c03b2181750
Translations:Beginner's Guide/35/en
1198
182
443
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
21eee5aa82386968c164c06f956cf7ae950d01c3
Translations:Beginner's Guide/36/en
1198
183
444
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Various steno enthusiasts are making and selling machines designed for use with Plover:
ddf3eb0dba4ce636ac4ac7a122c56f3ae0c1059f
Translations:Beginner's Guide/37/en
1198
184
445
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
cb9823bbe13d17b538617e387f3289a0cd29268d
Translations:Beginner's Guide/38/en
1198
185
446
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
ac4f711e91485def1aa77c0e47966ec17fcf85b8
Translations:Beginner's Guide/39/en
1198
186
447
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
9155f30d259023c2830e0d4d174a46a1ad7ffd69
Translations:Beginner's Guide/40/en
1198
187
448
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
c0375a2943dd5aee26499e8a41ef42898ba4d4fb
Translations:Beginner's Guide/41/en
1198
188
449
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
580a6fdba393d35c517fe16d5ae9ecf644003a80
Translations:Beginner's Guide/42/en
1198
189
450
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="confirm-its-working"></span>
== Confirm it’s working ==
9b17498d93ee908543c1ab29e188e224f7124455
Translations:Beginner's Guide/43/en
1198
190
451
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
c31f1400948d74440759411e8ae011cfd462ba75
Translations:Beginner's Guide/44/en
1198
191
452
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="keyboard"></span>
=== Keyboard ===
f7c6281928a937f47cbe27c9dc60d4ef09f694da
Translations:Beginner's Guide/45/en
1198
192
453
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
By default, Plover will use your keyboard as its input device.
e33fd9bc6d7b3474e8dc30f25a59e3a100555c74
Translations:Beginner's Guide/46/en
1198
193
454
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
# Run Plover.
# Click the Output: '''Enable''' radio button.
3924808e9d9e538b55c34fb3ebebd4d52117b387
Translations:Beginner's Guide/47/en
1198
194
455
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="write-hello-world"></span>
=== Write “Hello World” ===
3f64b5f99edaec2af37bcf4a21d0968a3500f57b
Translations:Beginner's Guide/48/en
1198
195
456
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
ed7229a1b983280b81b862b63e4b83cd97a35909
Translations:Beginner's Guide/49/en
1198
196
457
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
60effca4f8d8115638194e1a8b33c206ae6d78f8
Translations:Beginner's Guide/50/en
1198
197
458
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
b2aa95ebfcfe9d763da7916b1d2f32412120afea
Translations:Beginner's Guide/51/en
1198
198
459
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
04494a88663a34982ec2b3c4e1c141717b53d22a
Translations:Beginner's Guide/52/en
1198
199
460
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
2e06381327953a834113c4ab1bf8f1efc091b1b2
Translations:Beginner's Guide/53/en
1198
200
461
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
67863f924dbb89f51dbb4849052d106e644254b0
Translations:Beginner's Guide/54/en
1198
201
462
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="practice-sentences"></span>
==== Practice sentences ====
00568c580cb06eaf820d8fa05ba62c0b91d55603
Translations:Beginner's Guide/55/en
1198
202
463
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
4a5909e6f282be2c774b9911ea4ad603094e2b74
Translations:Beginner's Guide/56/en
1198
203
464
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
e55a3e5aa75b4e267c2dd0767e7e64acf7cbae70
Translations:Beginner's Guide/57/en
1198
204
465
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
0eb83f193da761066142e50f33e276aec05fa977
Translations:Beginner's Guide/58/en
1198
205
466
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<div class="figure">
6e32644952fb9991d115705b02f905c9707dcc46
Translations:Beginner's Guide/59/en
1198
206
467
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
f848c87b347966fd535b4f704656d71f046aa919
Translations:Beginner's Guide/60/en
1198
207
468
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
3b62c04081b75972d10efd5e64d19bc5304d3824
Translations:Beginner's Guide/61/en
1198
208
469
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
01235f8fbdac0227e7d4d19977a9a756481f9634
Translations:Beginner's Guide/62/en
1198
209
470
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
See also:
371a87eafb4de078ff674d69a5a89c186532eb49
Translations:Beginner's Guide/63/en
1198
210
471
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
2e165642928752a378cdd319d3cfcc26a4d0b2ee
Translations:Beginner's Guide/64/en
1198
211
472
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="stenography-machine"></span>
6cd588d46e8929cb96585ddafc4fdfe1dacd10b1
Translations:Beginner's Guide/65/en
1198
212
473
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
=== Stenography machine ===
f44863f794bc4e229d175ed1178c02df0fe88890
Translations:Beginner's Guide/66/en
1198
213
474
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
15cfde51b49ebf1d809de49f80f6269697bc6b6e
Translations:Beginner's Guide/67/en
1198
214
475
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
a311765fe3df7eb2da96c741aecca33b5b1146f3
Translations:Beginner's Guide/68/en
1198
215
476
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
27f39725f6d5072a6a8f18a6edc27e4defe6720d
Translations:Beginner's Guide/69/en
1198
216
477
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="practice-and-learn"></span>
== Practice and learn ==
b9626f26957552108ef4cb3bbf052c5eed98ef18
Translations:Beginner's Guide/70/en
1198
217
478
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
ce797dacf0aa2b80b385d751b612918a1f35fe63
Translations:Beginner's Guide/71/en
1198
218
479
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
51c7f725f414735ce7d15f3eea96668c82635d72
Translations:Beginner's Guide/72/en
1198
219
480
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
There are many steno theories that encompass the rules you use to convert words to steno strokes.
814778b13e8db4a26c23e259c7894195c85e2b59
Translations:Beginner's Guide/73/en
1198
220
481
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
2416007245d1d82566b0897d6c9e410dd05dcaa6
Translations:Beginner's Guide/74/en
1198
221
482
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
bf4c4922e52584b4e228acd32756f33039437524
Translations:Beginner's Guide/75/en
1198
222
483
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
cf5bfcde7424f5bcfd8adc0a1918983dfd79a714
Translations:Beginner's Guide/76/en
1198
223
484
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
'''We recommend learning either Plover theory or Lapwing theory.'''
3b3fa6138ec422cca7f53090c2c031205b41979e
Translations:Beginner's Guide/77/en
1198
224
485
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
72ef471faa08dac31704a5f573b28e505098c8ca
Translations:Beginner's Guide/78/en
1198
225
486
2024-02-25T15:16:34Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Category:Plover]]
19217f70dd61937300e5a44a34bca8d3ef06ff85
Beginner's Guide/en
0
152
487
411
2024-02-25T15:17:05Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages />
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<span id="arpeggiate"></span>
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<span id="confirm-its-working"></span>
== Confirm it’s working ==
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<span id="keyboard"></span>
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
<span id="write-hello-world"></span>
=== Write “Hello World” ===
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<span id="practice-sentences"></span>
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<div class="figure">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<span id="stenography-machine"></span>
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<span id="practice-and-learn"></span>
== Practice and learn ==
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
[[Category:Plover]]
656866ab90ff5191633b690c237ea486c2690c22
Translations:Beginner's Guide/Page display title/tr
1198
226
488
2024-02-25T15:17:20Z
Nat
11
Created page with "Yeni Başlayan Kılavuzu"
wikitext
text/x-wiki
Yeni Başlayan Kılavuzu
db2d279f0e0bcb472a6b453db1ed4e569b2a59ae
Translations:Beginner's Guide/6/tr
1198
227
489
2024-02-25T15:17:27Z
Nat
11
Created page with "Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır."
wikitext
text/x-wiki
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
c44d7f8800722a7e9cd2c51adaedee76fd6a8d14
Translations:Beginner's Guide/7/tr
1198
228
490
2024-02-25T15:17:41Z
Nat
11
Created page with " <span id="download-and-install-plover"></span> == Plover'ı Yükleyin ve Kurun =="
wikitext
text/x-wiki
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
9e43c055dcf3798917bf7d38a5b365e27475eb00
Translations:Beginner's Guide/8/tr
1198
229
491
2024-02-25T15:17:45Z
Nat
11
Created page with " Plover '''Windows, Mac, and Linux''' üzerinde çalışır."
wikitext
text/x-wiki
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
3c54a513693ae71df2e56e2a62996ea528abeb32
Translations:Beginner's Guide/9/tr
1198
230
492
2024-02-25T15:17:52Z
Nat
11
Created page with "* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]''' * Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun."
wikitext
text/x-wiki
* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun.
c9df84e165395ba07524a8cb2ae73b15054608a3
Translations:Beginner's Guide/10/tr
1198
231
493
2024-02-25T15:17:56Z
Nat
11
Created page with "<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>"
wikitext
text/x-wiki
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
313003212b252f26824e0f6925c35b8a8d36d3ae
Translations:Beginner's Guide/11/tr
1198
232
494
2024-02-25T15:18:00Z
Nat
11
Created page with "== Uyumlu bir klavye ya da stenografi makinesi bağlayın =="
wikitext
text/x-wiki
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
432519937744b258d76045b8687a40e0535a5b21
Translations:Beginner's Guide/12/tr
1198
233
495
2024-02-25T15:18:05Z
Nat
11
Created page with "Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kola..."
wikitext
text/x-wiki
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
9a7bd7c46e919b58210697cd6e4bafb8ccb327b9
Translations:Beginner's Guide/13/tr
1198
234
496
2024-02-25T15:18:13Z
Nat
11
Created page with "Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz: * [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]] * [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]] * #use-a-machine-designed-for-use-with-plover|Plover ile kull..."
wikitext
text/x-wiki
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
3f8385319f713a15877bbedcf1ea56358011758e
Translations:Beginner's Guide/14/tr
1198
235
497
2024-02-25T15:18:19Z
Nat
11
Created page with "<span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma ==="
wikitext
text/x-wiki
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
31321b8303e65ff8d4aee45514b0c156430c8a32
Translations:Beginner's Guide/15/tr
1198
236
498
2024-02-25T15:18:26Z
Nat
11
Created page with "Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama."
wikitext
text/x-wiki
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
54aa9c92bf3ad5c7b3aa355bf0f154cf70230a83
Translations:Beginner's Guide/16/tr
1198
237
499
2024-02-25T15:18:30Z
Nat
11
Created page with "<span id="arpeggiate"></span> ==== Arpej ===="
wikitext
text/x-wiki
<span id="arpeggiate"></span>
==== Arpej ====
8b97921e73d137910c8a12f89b560021d13e3a0f
Translations:Beginner's Guide/17/tr
1198
238
500
2024-02-25T15:18:48Z
Nat
11
Created page with "Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur."
wikitext
text/x-wiki
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
76570b90df874514df16f0df2a088f3e9baeb3e6
Translations:Beginner's Guide/18/tr
1198
239
501
2024-02-25T15:18:54Z
Nat
11
Created page with "https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif"
wikitext
text/x-wiki
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
03a358a8e83539c8e772bee7b92251f788bc0299
Beginner's Guide/tr
0
240
502
2024-02-25T15:18:57Z
Nat
11
Created page with "<span id="use-a-standard-qwerty-keyboard"></span> === Standart bir QWERTY klavyesi kullanma ==="
wikitext
text/x-wiki
<languages />
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
<span id="Connect_a_compatible_keyboard_or_stenography_machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
<div lang="en" dir="ltr" class="mw-content-ltr">
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Various steno enthusiasts are making and selling machines designed for use with Plover:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="confirm-its-working"></span>
== Confirm it’s working ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="keyboard"></span>
=== Keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
By default, Plover will use your keyboard as its input device.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover.
# Click the Output: '''Enable''' radio button.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="write-hello-world"></span>
=== Write “Hello World” ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-sentences"></span>
==== Practice sentences ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="figure">
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See also:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="stenography-machine"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-and-learn"></span>
== Practice and learn ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
There are many steno theories that encompass the rules you use to convert words to steno strokes.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''We recommend learning either Plover theory or Lapwing theory.'''
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Plover]]
</div>
84227d284c01484f664f7bb3e86cdbf744ed8628
506
502
2024-02-25T15:19:17Z
Nat
11
Created page with "<span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ===="
wikitext
text/x-wiki
<languages />
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
<span id="Connect_a_compatible_keyboard_or_stenography_machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
<div lang="en" dir="ltr" class="mw-content-ltr">
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Various steno enthusiasts are making and selling machines designed for use with Plover:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="confirm-its-working"></span>
== Confirm it’s working ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="keyboard"></span>
=== Keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
By default, Plover will use your keyboard as its input device.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover.
# Click the Output: '''Enable''' radio button.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="write-hello-world"></span>
=== Write “Hello World” ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-sentences"></span>
==== Practice sentences ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="figure">
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See also:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="stenography-machine"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-and-learn"></span>
== Practice and learn ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
There are many steno theories that encompass the rules you use to convert words to steno strokes.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''We recommend learning either Plover theory or Lapwing theory.'''
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Plover]]
</div>
a1316c2dc36e1859fdff7e4444925e5a3cacd582
509
506
2024-02-25T15:21:00Z
Nat
11
Created page with "Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur."
wikitext
text/x-wiki
<languages />
Bu kılavuz, '''Plover'a başlamayı anlatır'''. Plover, özgür stenografi yazılımıdır. Aşağıda atıfta bulunulan öğrenme kaynaklarının tamamı masrafsızdır.
<span id="download-and-install-plover"></span>
== Plover'ı Yükleyin ve Kurun ==
Plover '''Windows, Mac, and Linux''' üzerinde çalışır.
* '''[[Tr/Kurulum Kılavuzu|Kurulum Kılavuzu ile Plover'ı Yükleyin ve Kurun]]'''
* Takılırsanız [[Tr/Hata Giderme|hata giderme kılavuzuna]] başvurun.
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
<span id="Connect_a_compatible_keyboard_or_stenography_machine"></span>
== Uyumlu bir klavye ya da stenografi makinesi bağlayın ==
Stenoda tuşlar "stroke" (yaklaşık "strouk"), "chord" (yaklaşık "kord"), "akor" ya da (bu makalede) '''"vuruş"''' denen gruplar halinde aynı anda basılır. Standart QWERTY klavyeleri genelde aynı anda yalnızca birkaç tuşu algılar. Bazı steno vuruşları 10'a kadar tuş içerebilse de, bir klavye ile stenonun temellerini öğrenmek mümkündür. Özelleştirilmiş bir steno klavyesi dakikada 120'den fazla kelime gibi bir hıza ulaşmayı yüksek derecede kolaylaştıracaktır, fakat stenoya yeterince zaman adayacağınızdan emin olana kadar bu makineleri almak tavsiye edilmez.
Dilerseniz bu bölümün tamamını okuyabilirsiniz, fakat eğer sahip olduğunuz donanım ile zaten aşina iseniz, ilgili bölüme atlayabilirsiniz:
* [[#use-a-standard-qwerty-keyboard|Standart bir QWERTY klavyesi kullanma]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|NKRO özellikli bir QWERTY klavyesi kullanma]]
* [[#adapt-a-keyboard-for-steno-use|Steno ile kullanım için bir klavyeyi adapte edin]]
* [[#use-a-machine-designed-for-use-with-plover|Plover ile kullanım için tasarlanmış bir makine kullanma]]
* [[#use-a-professional-stenography-machine|Profesyonel bir stenografi makinesi kullanma]]
<span id="use-a-standard-qwerty-keyboard"></span>
=== Standart bir QWERTY klavyesi kullanma ===
Eğer bir laptop ya da sıradan bir klavye kullanıyorsanız, yüksek ihtimalle NKRO özelliği yoktur. Bu terim, herhangi bir sayıda tuşu aynı anda algılayabilen klavyeleri kasteder. Çoğu klavye aynı anda yalnızca 6 eş zamanlı tuş basması algılayabilir (ve bazı kombinasyonlarsa sadece 2 eş zamanlı tuş basması olarak kaydedilebilir). NKRO'nun yokluğunun etkisini azaltmak için iki seçeneğiniz var: arpej, ve vuruş yuvarlama.
<span id="arpeggiate"></span>
==== Arpej ====
Arpej seçeneğinin açık olduğu takdirde, bir vuruşu daha küçük tuş parçaları halinde (ya da hatta tek tek) basıp en son boşluk tuşuna basarak yazabilirsiniz. Plover boşluk tuşuna basana dek vuruşları işlemeyecektir. Bu yöntemle, her zaman tuşlara aynı anda basmanıza gerek kalmadığı için NKRO'nun etkisi azaltılmış olur.
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Various steno enthusiasts are making and selling machines designed for use with Plover:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="confirm-its-working"></span>
== Confirm it’s working ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="keyboard"></span>
=== Keyboard ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
By default, Plover will use your keyboard as its input device.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover.
# Click the Output: '''Enable''' radio button.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="write-hello-world"></span>
=== Write “Hello World” ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-sentences"></span>
==== Practice sentences ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="figure">
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See also:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="stenography-machine"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Stenography machine ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="practice-and-learn"></span>
== Practice and learn ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
There are many steno theories that encompass the rules you use to convert words to steno strokes.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''We recommend learning either Plover theory or Lapwing theory.'''
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Plover]]
</div>
b2ee68113abd0f75bea3ef74c7f76d74e2208b4a
Translations:Beginner's Guide/19/tr
1198
241
503
2024-02-25T15:19:01Z
Nat
11
Created page with "Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın."
wikitext
text/x-wiki
Arpej modunu aktifleştirmek için, Plover'ın ana penceresini açın ve <code>Configure</code> düğmesine basın. "Makine" kategorisi altında <code>Arpeggiate</code> seçeneğini aktifleştirin ve işiniz bittiğinde <code>Apply</code> ve <code>OK</code> düğmelerine basın.
6f439086781356668cb6d8180c744fce5bd4a84e
Translations:Beginner's Guide/20/tr
1198
242
504
2024-02-25T15:19:09Z
Nat
11
Created page with "<span id="rolling-your-strokes"></span> ==== Vuruş yuvarlama ===="
wikitext
text/x-wiki
<span id="rolling-your-strokes"></span>
==== Vuruş yuvarlama ====
24edcf8ff74a80c32b28aecbd00459b0dbf9a834
Translations:Beginner's Guide/21/tr
1198
243
505
2024-02-25T15:19:15Z
Nat
11
Created page with "Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz."
wikitext
text/x-wiki
Varsayılan halinde Plover, her tuş basılana dek Plover steno vuruşlarını işlemez. NKRO klavyeniz yoksa bu özellikten yararlanabilirsiniz. Vuruştaki tuşlara aynı anda basmak yerine, sadece birkaçına basın. Yavaşça vuruştaki bir tuşu daha ekleyip bir ötekini bırakın. En az bir tuşa basıldığı müddetçe, Plover steno vuruşunuzu işlemez, ve hala vuruşa yeni tuş ekleyebilirsiniz.
81d2b428d18cca7cf4000fa6f558fc084b161838
Translations:Beginner's Guide/22/tr
1198
244
507
2024-02-25T15:19:20Z
Nat
11
Created page with "https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif"
wikitext
text/x-wiki
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
86514ed06cb8dbb3f2cdcd1fbc0583076ef331f8
Translations:Beginner's Guide/23/tr
1198
245
508
2024-02-25T15:19:26Z
Nat
11
Created page with "Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]]."
wikitext
text/x-wiki
Kullandığınız yöntemi ilgilendirmeksizin [[#confirm-its-working|çalıştığını kontrol edin]].
41d47412f8fe0836bb81c5a04ed89cbfd1cc7ea7
Plover Wiki/en
0
107
510
382
2024-02-25T15:23:12Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages/>
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
7ac223ddd35cb1a70c76d832932a9673e67fc398
Installation Guide
0
8
511
370
2024-02-25T15:23:35Z
Nat
11
wrap in <translate>
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
</translate>
e612bbc1e5e6d0846b38306d302bc9766f5d7e71
Installation Guide
0
8
512
511
2024-02-25T15:23:48Z
Nat
11
Marked this version for translation
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
<!--T:7-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
912f2236adca4a51b74378fb6ecde4aa230e95ae
Translations:Installation Guide/Page display title/en
1198
246
513
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Installation Guide
985c60dcff79c62e661f5afa9edb6611b40ce0e0
Translations:Installation Guide/1/en
1198
247
514
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Install Plover on Windows ==
de28a283a6e9f309e2c43a502e2f1b7b37be164b
Translations:Installation Guide/2/en
1198
248
515
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
ff8fbbea5bb9cd7b9fc22d610cd9574ad437d723
Translations:Installation Guide/3/en
1198
249
516
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
a17266de0c451ef931434b5f8111d64f0f602dcb
Translations:Installation Guide/4/en
1198
250
517
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
1cff15bfbccd0b6454eda1804828f503709b7666
Translations:Installation Guide/5/en
1198
251
518
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
f64e8214b6dcb9cfce62cd51be52001acfc92080
Translations:Installation Guide/6/en
1198
252
519
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
b8c0cf81fb82cf719685d43217553e14fea9e5f5
Translations:Installation Guide/7/en
1198
253
520
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover is set up! You can run Plover like you would any other application.
9ff348dd2492fc10144ab51262e7082c4c4c43a7
Translations:Installation Guide/8/en
1198
254
521
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
77b8d077557c0e4aab5298e5d9cbbe4afc732519
Translations:Installation Guide/9/en
1198
255
522
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
163a0a3cd3d2d76f5ee711f95d04546413803117
Translations:Installation Guide/10/en
1198
256
523
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Install Plover on Linux ==
0befc8d2a195da3a031d603555728707d1c20763
Translations:Installation Guide/11/en
1198
257
524
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
38fbbf35c4053c882b9ab014062a8d79da4ae044
Translations:Installation Guide/12/en
1198
258
525
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
2bba77055205a1a3020b267263ba9999d1e0def0
Translations:Installation Guide/13/en
1198
259
526
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
50cb7b4e713516bc62a29da34bbedda597cc7433
Translations:Installation Guide/14/en
1198
260
527
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
To use it:
ec17d2b0393d701bb378fb92b5f34cc43ec1456a
Translations:Installation Guide/15/en
1198
261
528
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
687f694c4071aa14c80e2dc064d97de330fe2e66
Translations:Installation Guide/16/en
1198
262
529
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
1ed779be712ba446ff24d2a96fc2305e3ff320d6
Translations:Installation Guide/17/en
1198
263
530
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
e322c1c071b0f74420d23bdefff3eb9ad216a732
Translations:Installation Guide/18/en
1198
264
531
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
f09689e21a9528f5ea4a38f5d5cac2bcfc6a52e2
Translations:Installation Guide/19/en
1198
265
532
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Once you know the correct group, add your user to it by running the following command:
cd84153a2b7ded68af9779cdf97918b42adb4ba5
Translations:Installation Guide/20/en
1198
266
533
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
8610e00df957b805859e0f32ce8d3a11ef56b209
Translations:Installation Guide/21/en
1198
267
534
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
7d6c621cba5cec8907316cdefdbb59c77ddc535e
Translations:Installation Guide/22/en
1198
268
535
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
You may run into the following error when trying to run Plover:
3895bdfd2e3145376cf9673a0ae287afb6d62fcc
Translations:Installation Guide/23/en
1198
269
536
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
39065bbea16431b1340c1215115847614fd3aa1c
Translations:Installation Guide/24/en
1198
270
537
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
2276e3f868a293091719c51294f3006b3154ccfe
Translations:Installation Guide/25/en
1198
271
538
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
a383ff1b1ed10aca7df745cf16c58c943bd48969
Translations:Installation Guide/26/en
1198
272
539
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
9d5d89c6a71d72c80968ca4c4403977a548cc42b
Translations:Installation Guide/27/en
1198
273
540
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
== Setting up my machine ==
afa446c93e63de736df94e822548c1b8bb7206a8
Translations:Installation Guide/28/en
1198
274
541
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
0073e228f1d8e07d2479f71e82533cb5dc994ee5
Translations:Installation Guide/29/en
1198
275
542
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
63679740954cea29642d28f224fef14f4f3ae546
Translations:Installation Guide/30/en
1198
276
543
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
=== Homebrew Cask ===
7ef73255e9286d68b5e87ddb95c94cd961b1aa95
Translations:Installation Guide/31/en
1198
277
544
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
e7396e6b60e42be0b038ff01bde600c7c6bb5ebe
Translations:Installation Guide/32/en
1198
278
545
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Two AUR packages are provided:
0ade76d5fe12e1682f110045e7267cd299f4ca2a
Translations:Installation Guide/33/en
1198
279
546
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
12b866e2b7decd7ba7cb5f54d37eadc9b0dd4ce9
Translations:Installation Guide/34/en
1198
280
547
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
424aa0b91f8824c203bb8a3ea70a93ca60e2afe5
Translations:Installation Guide/35/en
1198
281
548
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Currently, only a git ebuild for the <code>master</code> branch is provided.
251694a58c15a5466f5271b86783c3fd0c8fa351
Translations:Installation Guide/36/en
1198
282
549
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
5e3fb2f52c8cc02a1e7935d9c0e8a3596a74be76
Translations:Installation Guide/37/en
1198
283
550
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
5196ab0c864a131a6fbbcffa0935b2b79699872c
Translations:Installation Guide/38/en
1198
284
551
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
d35c13a0483b91a40ed394aa0b681b627631d91f
Translations:Installation Guide/39/en
1198
285
552
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you get stuck, you can:
8a22806405dac279598617c70011e8ab607c1772
Translations:Installation Guide/40/en
1198
286
553
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
4e4f6e0ac5871eebb5cc2118f7284e188d334d38
Translations:Installation Guide/41/en
1198
287
554
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
edce8215f6a92c0ba30bcbbbf5cc10b0ba47e9fb
Translations:Installation Guide/42/en
1198
288
555
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
282e41b8e082ce00f56ccce8e21e773796f3af8f
Translations:Installation Guide/43/en
1198
289
556
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
5e4a1808b3057a7d73b196eea82ae74de2641e79
Translations:Installation Guide/44/en
1198
290
557
2024-02-25T15:24:00Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
[[Category:Plover]]
19217f70dd61937300e5a44a34bca8d3ef06ff85
Translations:Installation Guide/Page display title/tr
1198
291
558
2024-02-25T15:24:24Z
Nat
11
Created page with "Kurulum Kılavuzu"
wikitext
text/x-wiki
Kurulum Kılavuzu
3363e9b0b7fb7c6c0be61617913aa3c446c56aed
Translations:Installation Guide/1/tr
1198
292
559
2024-02-25T15:24:31Z
Nat
11
Created page with "== Windows Üzerinde Plover Kurulumu =="
wikitext
text/x-wiki
== Windows Üzerinde Plover Kurulumu ==
fac4c113d315e7a41d8d58613d55d886c4f9f57b
Translations:Installation Guide/2/tr
1198
293
560
2024-02-25T15:24:44Z
Nat
11
Created page with " Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir. <span id="download-the-windows-installer-here"></span> === [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4...."
wikitext
text/x-wiki
Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir.
<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] ===
f3e66a16ef0d0f0d5bcbc7a9b84af05aa604293f
Translations:Installation Guide/3/tr
1198
294
561
2024-02-25T15:25:00Z
Nat
11
Created page with "Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir."
wikitext
text/x-wiki
Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir.
daea4f06adba00b6545438be69a8948f5bacf55c
Translations:Installation Guide/3/tr
1198
294
562
561
2024-02-25T15:25:06Z
Nat
11
wikitext
text/x-wiki
Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir.
<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] ===
233b5d52259b6ee684ab2b7b817a6b52d4ce635c
Translations:Installation Guide/4/tr
1198
295
563
2024-02-25T15:25:26Z
Nat
11
Created page with "Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın."
wikitext
text/x-wiki
Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın.
8a0fe3ec736b645f4be0fb0a54a3143314b69b68
564
563
2024-02-25T15:25:32Z
Nat
11
wikitext
text/x-wiki
Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın.
<span id="install-plover-on-mac"></span>
== Mac Üzerinde Plover Kurulumu ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] ===
74dbf31f4c78d04656302a7218a15e68ca74c73f
Installation Guide/tr
0
296
565
2024-02-25T15:25:50Z
Nat
11
Created page with "== Windows Üzerinde Plover Kurulumu =="
wikitext
text/x-wiki
<languages />
<span id="Install_Plover_on_Windows"></span>
== Windows Üzerinde Plover Kurulumu ==
Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir.
<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] ===
Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir.
<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] ===
Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın.
<span id="install-plover-on-mac"></span>
== Mac Üzerinde Plover Kurulumu ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] ===
<div lang="en" dir="ltr" class="mw-content-ltr">
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover is set up! You can run Plover like you would any other application.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Install Plover on Linux ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To use it:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Once you know the correct group, add your user to it by running the following command:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You may run into the following error when trying to run Plover:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Setting up my machine ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Homebrew Cask ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Two AUR packages are provided:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Currently, only a git ebuild for the <code>master</code> branch is provided.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you get stuck, you can:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Plover]]
</div>
f9aa0a8cbcf084d054ef27c7b72a0d333a87ffcd
567
565
2024-02-25T15:28:08Z
Nat
11
wikitext
text/x-wiki
<languages />
<span id="Install_Plover_on_Windows"></span>
== Windows Üzerinde Plover Kurulumu ==
Plover kurulabilir ya da taşınabilir bir ZIP olarak doğrudan çalıştırılabilir. Eğer Plover'ı bir USB bellek üzerinden çalıştırıyorsanız ya da ana makinenin yetkileri kısıtlanmışsa, taşınabilir ZIP'i kullanmak daha avantajlı olabilir. Fakat başka tüm kullanım amaçları için, kurulum yöntemi önerilir.
<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Windows kurulum sihirbazını indirin] ===
Kurulum sihirbazını çalıştırın ve ekrandaki talimatları takip edin. [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 Windows Defender SmartScreen'i] baypas etmek için uygulamaya yetki atamanız gerekebilir.
<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Windows taşınabilir ZIP'i indirin] ===
Tüm arşivi Plover'ı çalıştırmak için kullanmak istediğiniz klasöre doğru çıkarın.
<span id="install-plover-on-mac"></span>
== Mac Üzerinde Plover Kurulumu ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Mac için Plover'ı indirin] ===
<div lang="en" dir="ltr" class="mw-content-ltr">
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
</div>
Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz.
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Install Plover on Linux ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To use it:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Once you know the correct group, add your user to it by running the following command:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You may run into the following error when trying to run Plover:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Setting up my machine ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Homebrew Cask ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Two AUR packages are provided:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Currently, only a git ebuild for the <code>master</code> branch is provided.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you get stuck, you can:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Plover]]
</div>
96e04cf7cac9b7ef8107404044ea7fe6b8ab88d8
Translations:Installation Guide/7/tr
1198
297
566
2024-02-25T15:26:04Z
Nat
11
Created page with "Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz."
wikitext
text/x-wiki
Ve Plover kuruldu! Plover'ı şimdi herhangi başka bir uygulama gibi çalıştırabilirsiniz.
fff629944823c212980cb9593f15258a92dd4ba3
Plover Wiki
0
3
568
395
2024-02-25T15:31:19Z
Rice
1
wikitext
text/x-wiki
<languages/>
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
6521db6a6a5c925c6979eec3a9fcefcf3e0ca7e3
571
568
2024-02-25T15:34:10Z
Rice
1
Reverted edits by [[Special:Contributions/Rice|Rice]] ([[User talk:Rice|talk]]) to last revision by [[User:Astra|Astra]]
wikitext
text/x-wiki
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
74cd4766f92dbed6332c188a2a80d1dbb7ae086f
572
571
2024-02-25T15:35:12Z
Rice
1
wikitext
text/x-wiki
<languages />
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
1470ee5e092b0461ead08bce50825227d98885d7
575
572
2024-02-25T19:42:11Z
Nat
11
add translation help
wikitext
text/x-wiki
<languages />
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
=== Translating the Wiki ===
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
<hr />
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
1f076029acef79c8867a52457f5dfa29b7ccdeff
576
575
2024-02-25T19:42:42Z
Nat
11
Marked this version for translation
wikitext
text/x-wiki
<languages />
<translate>
<!--T:7-->
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
<!--T:8-->
Plover runs on Windows, macOS, and Linux.
<!--T:9-->
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
<!--T:10-->
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
<!--T:11-->
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
=== Translating the Wiki === <!--T:13-->
<!--T:14-->
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
<!--T:15-->
<hr />
<!--T:12-->
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
</translate>
33f37760e8476f916873205e916a17248da9d4dc
Installation Guide/en
0
298
569
2024-02-25T15:31:22Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages />
== Install Plover on Windows ==
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
Plover is set up! You can run Plover like you would any other application.
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux ==
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
You may run into the following error when trying to run Plover:
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine ==
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask ===
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
If you get stuck, you can:
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
[[Category:Plover]]
b5ad47bde4ada8139a0c3dea5d844bbffef07f7d
Plover Wiki/fr
0
132
570
393
2024-02-25T15:31:28Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages/>
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
Plover fonctionne sous Windows, macOS et Linux.
[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]
== Le projet Open Steno ==
Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte.
== Contribuer au Wiki ==
Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée.
[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam.
1ac93f7c7200d3b8b093447420b93d5c5b0b496f
585
570
2024-02-25T19:49:24Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages />
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
Plover fonctionne sous Windows, macOS et Linux.
[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]
== Le projet Open Steno ==
Plover fait partie du [http://openstenoproject.org/ Open Steno Project]. Le projet Open Steno vise à ouvrir la sténographie au grand public. Le projet Open Steno s'est manifesté par des efforts en faveur de logiciels libres, de ressources d'apprentissage gratuites et d'options de claviers source ouverte.
== Contribuer au Wiki ==
Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée.
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Translating the Wiki ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<hr />
</div>
[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam.
4f1a0bda6f4e593e1d66e7157a98bf104de2a4c9
Plover Wiki/tr
0
138
573
402
2024-02-25T15:37:40Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages/>
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
c74f62dc91179be14f14e47384f425fca9397f30
583
573
2024-02-25T19:47:03Z
Nat
11
Created page with "=== Vikiyi Çevirme ==="
wikitext
text/x-wiki
<languages />
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Tr/Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
<span id="Translating_the_Wiki"></span>
=== Vikiyi Çevirme ===
Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur.
<hr />
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
a9ad647b573214e0c2b8efc0a49729564025b865
592
583
2024-02-26T13:10:40Z
Nat
11
wikitext
text/x-wiki
<languages />
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (yaklaşık "plavır"), özgür ve açık kaynak bir stenografi yazılım programıdır. Stenografi öğrenen şahısların herhangi bir programa dakikada 200 kelimeden yüksek hızlarda yazmasını sağlar.
Plover Windows, Linux ve macOS üzerinde çalışır.
[[Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
== Open Steno Project ==
Plover, [http://openstenoproject.org/ Open Steno Project]'in ''(Açık Steno Projesi'nin)'' bir parçasıdır. Open Steno Project, stenografiyi genel halka açma çabasındadır. Open Steno Project özgür yazılım, ücretsiz öğrenim kaynakları ve açık kaynak donanım seçenekleri üzerine emekleri ile etkisini göstermiştir.
== Vikiye Katkıda Bulunma ==
Katkılar nezaketle karşılanır, fakat değiştirme yetkileri geçerli bir e-posta adresi içeren hesaplara sınırlanmıştır.
<span id="Translating_the_Wiki"></span>
=== Vikiyi Çevirme ===
Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur.
<hr />
[[Special:ConfirmEmail|E-posta adresinizi buradan onaylayınız.]] Lütfen spam klasörünüze de bakmayı ihmal etmeyiniz.
59a81a0bdbe8a048c3507b778fef1ac3d27cfb2e
Plover Wiki/Translation instructions
0
299
574
2024-02-25T19:36:05Z
Nat
11
Initial edit
wikitext
text/x-wiki
This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible.
=== Prepare for translation ===
==== Decorate the page with necessary syntax ====
Start editing the source of the page you would like to translate, and wrap the entire page in a <code><translate>''[...]''</translate></code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds.
{{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ...
== Heading ==
Content
... , it's preferable to split it to ...
== Heading ==
Content
... , which ensures proper separation of translation sections.}}
After that, add a <code><languages /></code> tag to the top of the page, which provides a language selection menu. The document should now look like ...
<languages />
<translate>
''[...]''
</translate>
Save your edits. '''Yay!''' The page can now be marked for translation.
==== Mark article for translation ====
After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week.
== Translating the page ==
When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs].
{{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated—of course, with the appropriate language set on the menu at the bottom of the article—purging the cache data of the article from '''[[Special:Purge]]'''.}}
'''Hurray!''' Your translation should now be available to everyone browsing the wiki.
== Issues? ==
We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there.
== Epilogue ==
The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document.
65730da04a4215a56cab2e96d01a653e96fc4a6c
593
574
2024-02-26T13:17:31Z
Nat
11
/* Translating the page */ fix typo
wikitext
text/x-wiki
This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible.
=== Prepare for translation ===
==== Decorate the page with necessary syntax ====
Start editing the source of the page you would like to translate, and wrap the entire page in a <code><translate>''[...]''</translate></code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds.
{{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ...
== Heading ==
Content
... , it's preferable to split it to ...
== Heading ==
Content
... , which ensures proper separation of translation sections.}}
After that, add a <code><languages /></code> tag to the top of the page, which provides a language selection menu. The document should now look like ...
<languages />
<translate>
''[...]''
</translate>
Save your edits. '''Yay!''' The page can now be marked for translation.
==== Mark article for translation ====
After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week.
== Translating the page ==
When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs].
{{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated—of course, with the appropriate language set on the menu at the bottom of the article—try purging the cache data of the article from '''[[Special:Purge]]'''.}}
'''Hurray!''' Your translation should now be available to everyone browsing the wiki.
== Issues? ==
We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there.
== Epilogue ==
The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document.
836d420d17ef10b670b42d792cfe4dd656c70c16
594
593
2024-02-26T21:06:24Z
Nat
11
/* Translating the page */ fix incorrect phrase
wikitext
text/x-wiki
This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible.
=== Prepare for translation ===
==== Decorate the page with necessary syntax ====
Start editing the source of the page you would like to translate, and wrap the entire page in a <code><translate>''[...]''</translate></code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds.
{{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ...
== Heading ==
Content
... , it's preferable to split it to ...
== Heading ==
Content
... , which ensures proper separation of translation sections.}}
After that, add a <code><languages /></code> tag to the top of the page, which provides a language selection menu. The document should now look like ...
<languages />
<translate>
''[...]''
</translate>
Save your edits. '''Yay!''' The page can now be marked for translation.
==== Mark article for translation ====
After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week.
== Translating the page ==
When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs].
{{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated—of course, with the appropriate language set on the menu at the top of the article—try purging the cache data of the article from '''[[Special:Purge]]'''.}}
'''Hurray!''' Your translation should now be available to everyone browsing the wiki.
== Issues? ==
We talk about this translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there.
== Epilogue ==
The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document.
7b71f6b697733682bf98fb5bfe815441e6c7f395
598
594
2024-03-03T06:37:46Z
Nat
11
fix phrasing error
wikitext
text/x-wiki
This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible.
=== Prepare for translation ===
==== Decorate the page with necessary syntax ====
Start editing the source of the page you would like to translate, and wrap the entire page in a <code><translate>''[...]''</translate></code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds.
{{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ...
== Heading ==
Content
... , it's preferable to split it to ...
== Heading ==
Content
... , which ensures proper separation of translation sections.}}
After that, add a <code><languages /></code> tag to the top of the page, which provides a language selection menu. The document should now look like ...
<languages />
<translate>
''[...]''
</translate>
Save your edits. '''Yay!''' The page can now be marked for translation.
==== Mark article for translation ====
After this, you should '''contact an administrator''' to mark your article for translation. We can't provide an average response time, but it probably shouldn't take more than a week.
== Translating the page ==
When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs].
{{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated—of course, with the appropriate language set on the menu at the top of the article—try purging the cache data of the article from '''[[Special:Purge]]'''.}}
'''Hurray!''' Your translation should now be available to everyone browsing the wiki.
== Issues? ==
We talk about translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there.
== Epilogue ==
The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document.
18d26fde7d02db4ef2170971e7a49eae615eaaff
599
598
2024-03-03T06:41:53Z
Nat
11
/* Mark article for translation */ add contact link
wikitext
text/x-wiki
This page explains how to translate pages on this wiki to other languages using the Translate extension. Make sure to follow these steps as close as possible.
=== Prepare for translation ===
==== Decorate the page with necessary syntax ====
Start editing the source of the page you would like to translate, and wrap the entire page in a <code><translate>''[...]''</translate></code> tag. This will automatically split the entirety of the page into ''translation sections'', by double line feeds.
{{Warning|text='''Make sure that markup elements are properly split!''' For example, if you encounter a markup such as ...
== Heading ==
Content
... , it's preferable to split it to ...
== Heading ==
Content
... , which ensures proper separation of translation sections.}}
After that, add a <code><languages /></code> tag to the top of the page, which provides a language selection menu. The document should now look like ...
<languages />
<translate>
''[...]''
</translate>
Save your edits. '''Yay!''' The page can now be marked for translation.
==== Mark article for translation ====
After this, you should '''contact an administrator''' to mark your article for translation. You can talk to us on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server]. We can't provide an average response time, but it probably shouldn't take more than a week.
== Translating the page ==
When your article is marked for translation by an admin, you should see a '''"Translate this page"''' link on the top of the article. Follow this link, and from the top right, change the language option to your translation target. A menu for translation should show up. The steps for translation should thereafter become clear. If you have problems, check out [https://www.mediawiki.org/wiki/Help:Extension:Translate/Translation_example the article about translation on MediaWiki docs].
{{Info|text='''Pro Tip:''' When you're done translating and the page doesn't seem to have updated—of course, with the appropriate language set on the menu at the top of the article—try purging the cache data of the article from '''[[Special:Purge]]'''.}}
'''Hurray!''' Your translation should now be available to everyone browsing the wiki.
== Issues? ==
We talk about translations of this wiki on the [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], at the "plover.wiki translation" thread of the #server-feedback channel. Feel free to report any issues with translation there.
== Epilogue ==
The MediaWiki documentation has [https://www.mediawiki.org/wiki/Help:Extension:Translate/Page_translation_example a translation preparation guide for administrators], but it lacks some pitfalls we ran into. We're not sure that they aren't specific to us, but the final frustration led to the creation of this document.
2e8fd9037b3b1798ad7fbfdb317d456c1e02ad52
Translations:Plover Wiki/13/en
1198
300
577
2024-02-25T19:43:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
=== Translating the Wiki ===
79088d4559cc87d98cc8b46427c95b7f61419f0c
Translations:Plover Wiki/14/en
1198
301
578
2024-02-25T19:43:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
524c8a6eeb8a200013bf1430c9f3889cac03ae8e
Translations:Plover Wiki/15/en
1198
302
579
2024-02-25T19:43:03Z
FuzzyBot
12
Importing a new version from external source
wikitext
text/x-wiki
<hr />
c41aeb6f82e99d37dcb981f47e9a1f9417e8b099
Translations:Plover Wiki/13/tr
1198
303
580
2024-02-25T19:43:56Z
Nat
11
Created page with "=== Vikiyi Çevirme ==="
wikitext
text/x-wiki
=== Vikiyi Çevirme ===
835bfd75d1886f361944670ad7e4aa519844a8a5
Translations:Plover Wiki/14/tr
1198
304
581
2024-02-25T19:46:55Z
Nat
11
Created page with "Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur."
wikitext
text/x-wiki
Vikiyi uluslararasılaştırmak için MediaWiki Translation eklentisi kullanılır. Çeviri adımları üzerine bir [[Plover Wiki/Translation instructions|yazıt]] bulunur.
f24a64900780683c94fe388f2f8035e90ac5a3f5
Translations:Plover Wiki/15/tr
1198
305
582
2024-02-25T19:46:59Z
Nat
11
Created page with "<hr />"
wikitext
text/x-wiki
<hr />
c41aeb6f82e99d37dcb981f47e9a1f9417e8b099
Plover Wiki/en
0
107
584
510
2024-02-25T19:49:04Z
FuzzyBot
12
Updating to match new version of source page
wikitext
text/x-wiki
<languages />
[[File:Plover-mascot-Dolores.svg|alt=An illustration of a plover (bird) showing a steno keyboard layout on the underside of its left wing|frameless|Dolores, the Plover mascot|300x300px|right]]
Plover (rhymes with "lover") is a free, open source stenography engine. It allows individuals who learn stenography to write into any program at speeds of over 200 words per minute.
Plover runs on Windows, macOS, and Linux.
[[Beginner's Guide|'''Beginner's Guide: Get Started with Plover''']]
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
== Contributing to the Wiki ==
Contributions are welcome, but edit permissions are restricted to accounts with a validated email address.
=== Translating the Wiki ===
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
<hr />
[[Special:ConfirmEmail|Confirm your email address here.]] Please be sure to check your spam folder.
9703e6eecdf991620af08a858ed3bf2c9b296670
User:Nat
2
85
586
338
2024-02-25T20:04:50Z
Nat
11
wikitext
text/x-wiki
<div style="overflow:hidden;padding:24px 0">
<div style="font:4em 'Liberation Mono',Consolas,monospace;font-weight:bold;display:inline-block;padding:0 8px;float:left">
<div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">n</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>a</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">t</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>a</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">l</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(10deg)>i</div><div style="display:inline-block;border-top:1px solid #ccc;border-bottom:1px solid #ccc;transform:skewY(-10deg);background:#ccc">e</div>
</div>
I am Natalie. It seems I am an administrator here.
</div>
== <span style="vertical-align:bottom">E-mail</span> https://ctrl-c.club/~nat/email.gif https://ctrl-c.club/~nat/email3.gif https://ctrl-c.club/~nat/email4.gif https://ctrl-c.club/~nat/email7.gif ==
<pre>
_CKQX)<m@MQi~ ^ygR@R&s^ -)wRMMMMMMQC! .*C&R@RAy^` :m@dCiTKMMg!
-lXRM@gyc?*~` _}A@9*^CAM9^ -:^^;\kQMH<_ ;xR@hl^)URR2, ,o#RR@AJ|l*_
.\w@RI*` !y@Q\- "7R@er. _{KN&~ -)VBH! _YKMQc,
.\w@Dr. ^x&R@BBMMK\_ !&BHC, ,%R@4: `*F@Q<' _{KM&~
.\w@H! ^AMKx_ !o@Q)_ :2R@b^ _{KN&~ -<5BH! _JK@P:
.\w@H! ^KMHy^!eQMRC^ .|4@Rkc*^!^", "xR@hl!|&RQy, _YK@P:
.\w@H! .+aQ@RV!!SRMq~,yQ@MMMMMM@AJ_ .*C&R@R&C" _YK@P:
_L&@MMRmt_
-,,\8M&t_
~OM&t_ "1&R@RA%+. _|Q@F*` `*2@Q+- !n&R@R&Y: ^smR@@RX|:
~OM&t_ ,y#R&|!|FRRC^ ,5@Qy, ,FQRw, :fR@a<~!XQdi_ !K@Vl"^{qQ5:
~OM&t_ !HW$|- :mWKJ- +5BK^ !H@3* .LAM9" `!o@A" ^KMK%)"-
~OM&t_ _)Q@%*` ,Z@R2, -)QRx**1R#* _CD@M@@@@@MMg! !JA@NMMRw|-
~9M&t_ !KNX|- :UWKY_ :4QX34UH2, _t&WK!.______ '^xmNH*`
,ZRRV*,,. _yD@&|!l2@R}^ -)eH@MQy!` :iQ@kl^!CdUn_ ,l#RT!~;|k@H*
"i6WM@g{_ "n&R@R&y*. -rKMMO! `!{ER@RH2!_ -+%gR@@Rms^
:P@KY_ .\3@H!
:P@KY_ .\3@H!
:P@&V2$RR&{, ,fPQ@@He)- .\h@R{s6@Rb), ^imR@RHF^
:XMM87\c2RRF* *2@Rj*cw@Q|_ reR@&C*)&@@V, !gM&n^\K@Et_
:dBRF, ~&M8C_ ` _|QRC^ *3@Q+. .|XWH* ,aRQ2,
:P@A{_ :$@R%_ ,+4Q@B@NMQn^ *k@H! `*2@Q)_ ,xUQ@@WMBR2,
:dNR2, ~&MH{`_kR@V: _?QRC^ *3@Q|_ .|XWK!_!yRRt: _3RRa,
:XMMHx+c%RRy! ,Z@@G!^}U@@Xl_.r2RB&C!+&@Ra_ *%RRYr*fgNWq!
:E@b%FXRRms, ^fO@@U)*nE@K\^lk@Qic&@RX*_ ;%Q@RXx!?K@mi_
_|2UHQE1!` `!xGo, "KQ*
_iIx*. ,Tel" _xP&y, ,lRQ*
`^%wr\4&%oXUE{`_a@NMMMMMM&~ ,FQRw, :m@K{- !CQMMMMMMQ1! ^imR@RHF^
l|\L6V:_fFixU2, !mRQk!,:, ,FQRw, :m@KJ_ :c4@Qi^~,- !gM&n^\K@Et_
2Ccc2x..7y!*Z%, :4RHC_ ,FQRw, :m@KY_ `*%@D* ,aRQ2,
X2jcT| _V4~:a2, :4RHC_ ,FQRw, :m@KY_ `*%@D* ,xUQ@@WMBR2,
XFl|y}"!&&!"}f_ :4RHC_ ,yQ@$, ;AMKJ_ `*%@D* `!yRRt: _3RRa,
I7^!yX3T)c5%; ,FQ@&+"^;_ 'imBQfrikR@KY_ ^JRRF)^~", *%RRYr*fgNWq!
!\xl' ,\4R@MNEr_ `!VR@KsiPDKC_ ,xmRBMRV|- ;%Q@RXx!?K@mi_
,hd\_ -*Xw:
"TG&&bC^. ^YRRl,
`,!!_
^9MMMMH?, "cXQ@RQV\,
_^|2@Ql, `*KN&T!*2DN&^
^YRRl, .ra@Dr` ~7RRs~
^YRRl, 'cPMK^ ,lQRC!
^YRRl, .*a@#r` "xRRf~
,FDQ%, -,,^|2RRY!",` .*KN&1!*kQ@m;
,kRRS, _}9@MMMMMMMMDi: ~cXR@R8h*_
</pre>
818fcd090e7a8e75888f11ce1ec4d45e12247d2f
User:Rice/global.js
2
306
587
2024-02-25T20:41:58Z
Rice
1
Created page with "mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript');"
javascript
text/javascript
mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript');
c8bd8d012731754c7e3ad00d4ca43e8558d836ab
588
587
2024-02-25T20:43:24Z
Rice
1
Blanked the page
javascript
text/javascript
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Common.js
8
67
589
236
2024-02-25T20:46:03Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.load('https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&action=raw&ctype=text/javascript');
abf0086f379382698b852158662ce56ad19b84b4
590
589
2024-02-25T20:47:19Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
7850587e5c59a0259c9c96f81797dcf059b3cac9
Translations:Plover Wiki/9/tr
1198
142
591
398
2024-02-26T13:10:37Z
Nat
11
wikitext
text/x-wiki
[[Yeni Başlayan Kılavuzu|'''Plover Yeni Başlayan Kılavuzu: Plover'a Başlayın''']]
1fa2ba1e9a88a395795d1532365f67531229d086
Dictionary format
0
11
595
309
2024-02-27T13:36:06Z
Nat
11
/* Carrying Capitalization */ remove redundant code tag
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "Add Translation" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
2198ea59179a612bdbefae3d6944d2e24a582ce4
File:Keyboard-arpeggiate.gif
6
307
596
2024-03-03T04:07:11Z
Aerick
9
wikitext
text/x-wiki
Arpeggiate demo
fe42d17de483a857f54e21f28d655bb1731ac04f
File:Keyboard-roll.gif
6
308
597
2024-03-03T04:08:34Z
Aerick
9
wikitext
text/x-wiki
Animation of rolling strokes.
057040e517016f7dee4a4d6a0755d2ee6c959da9
Invoke Plover from the command line
0
49
600
181
2024-03-22T09:08:46Z
Nat
11
remove redundant code tag
wikitext
text/x-wiki
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph-usb
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph-usb
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
== Linux (AppImage) ==
# Execute the command in the command-line:
plover.AppImage -s plover_plugins install plover-stenograph-usb
be96cef34f98297356ad91e35b456bd7d6d63965
Supported hardware
0
10
604
226
2024-03-27T03:28:02Z
Goober tony
19
Fixed small typo in the acronym of the Yet Another Steno Keyboard project in the DIY machines section.
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of January 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of January 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of January 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock. [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of January 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
9bef3f4ce14cf5d85b3cb66c6d67264451a64981
605
604
2024-04-05T03:22:28Z
Aerick
9
Update stock status
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno][https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno][https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://cdn.discordapp.com/attachments/136953735426473984/1105663285493243984/starboard-top.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
28c9955b872f8585b31f92604f41d48d722c7ae5
606
605
2024-04-06T01:53:03Z
Goober tony
19
fixed the image for the starboard
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno][https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno][https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
297000d521c161e34d811c7b2731953d0e3bbb1a
610
606
2024-04-07T21:35:21Z
Aerick
9
Fix formatting of international site for nolltronics boards.
wikitext
text/x-wiki
This page lists the machines known to work with Plover
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
[[Category:Plover]]
ff63232bc34e8dd7182570146acdd7265c6531bd
Beginner's Guide
0
4
607
413
2024-04-07T21:26:35Z
Aerick
9
Fix gifs
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
# Run Plover.
# Click the Output: '''Enable''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
bac625fa19e5e4cdc9c304f7d7732f4c26cde555
609
607
2024-04-07T21:32:05Z
Aerick
9
Add screenshot for arpeggiate option
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|none|thumb]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
# Run Plover.
# Click the Output: '''Enable''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
f3cfa34896178368e25a61327c8e611cecb9913a
File:Plover-arpeggiate-option.png
6
312
608
2024-04-07T21:30:03Z
Aerick
9
wikitext
text/x-wiki
arpeggiate option highlighted
7dacc0fdcc930017f7f2ddd25a4c0502a0ae9788
User:CristineCcp
2
1136
1434
2024-04-12T20:51:30Z
CristineCcp
1439
Created page with "%About_Yourself%"
wikitext
text/x-wiki
%About_Yourself%
e39700fa9be6f7ea8f16e3ab3e7e173242ed0719
User:HildredMadrigal
2
1137
1435
2024-04-12T20:53:09Z
HildredMadrigal
1440
Created page with "%About_Yourself%"
wikitext
text/x-wiki
%About_Yourself%
e39700fa9be6f7ea8f16e3ab3e7e173242ed0719
User:AliciaCaffyn65
2
1138
1436
2024-04-12T20:54:02Z
AliciaCaffyn65
1441
Created page with "%About_Yourself%"
wikitext
text/x-wiki
%About_Yourself%
e39700fa9be6f7ea8f16e3ab3e7e173242ed0719
User:RoscoeOrdell
2
1139
1437
2024-04-12T20:54:30Z
RoscoeOrdell
1442
Created page with "%About_Yourself%"
wikitext
text/x-wiki
%About_Yourself%
e39700fa9be6f7ea8f16e3ab3e7e173242ed0719
User:Anita22655
2
1140
1438
2024-04-12T20:59:41Z
Anita22655
1443
Created page with "%About_Yourself%"
wikitext
text/x-wiki
%About_Yourself%
e39700fa9be6f7ea8f16e3ab3e7e173242ed0719
Supported hardware
0
10
1446
610
2024-04-12T21:30:09Z
Rice
1
Added section on controller steno
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 3 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# A video game controller
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. Please follow the instructions on the previously linked GitHub page to install and configure this properly.
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing Theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
a27c2735d49805dbb1edc0ef11fe6113d4c07d44
1447
1446
2024-04-12T21:31:01Z
Rice
1
changed capital to lower
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 3 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# A video game controller
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. Please follow the instructions on the previously linked GitHub page to install and configure this properly.
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
5382436fbe4064cd6c93718cde352aecf3d0361c
1448
1447
2024-04-12T21:32:50Z
Rice
1
Add link to plugins page for installation instructions for plover_controller
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 3 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# A video game controller
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select T- and H- separately. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
ed3d1c9de64f867560cf7c905668f722ed0e613a
1450
1448
2024-04-12T21:36:44Z
Rice
1
Plover controller usage minor text changes
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 3 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# A video game controller
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
af8ca33b0f81624f1f6cbd5f9ea168b2f54414ae
1451
1450
2024-04-12T21:40:08Z
Rice
1
Add link to controller section on top of page
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 3 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
467098fb49d6d502af8c5576191dbe73d1f4d338
1452
1451
2024-04-12T21:40:31Z
Rice
1
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTYyNTksIm5iZiI6MTcxMjk1NTk1OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjEwNTU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZjMzY1Y2U4NzgzYWUzMDYwZThlMTllNThlNzExZWExMmYyNDNkMGZlZDFjNmY4Nzk5NzRmOGZiY2QyM2Y5ZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QW_77ZzS0WkRCEnWhWG-VBJacQR8CcqDzoaS99dBLEk"/>
[[Category:Plover]]
5e8e5305d110a0e1d354e55c312e333f2a1a14c4
1457
1452
2024-04-12T21:48:09Z
Rice
1
/* Usage */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
<img id="plover_controller_diagram" src="https://private-user-images.githubusercontent.com/4098453/297623398-f2883413-c177-4c0c-80aa-778b11a5173b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTI5NTg3NDksIm5iZiI6MTcxMjk1ODQ0OSwicGF0aCI6Ii80MDk4NDUzLzI5NzYyMzM5OC1mMjg4MzQxMy1jMTc3LTRjMGMtODBhYS03NzhiMTFhNTE3M2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MTJUMjE0NzI5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWRjNjgwYWY4ZjhkMzg1NmJjYTcyZTRhZTFhMTJhZWQzMmUwMDdhMDRmNmQ0ZTU1NWNiY2NiNDdlNzBiN2Q3MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.ecIwQgaEEgH4oXEda0c2goj4Hh5rNWYBHo5-2x6Mj4E"/>
[[Category:Plover]]
ae94f6464fe14895ea324f8c505287875d4f9741
1476
1457
2024-04-12T22:02:11Z
Rice
1
Upload image instead of linking to it in controller section
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]]
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
bc85268716142b068ce19c1cbe0934a72b77c470
1477
1476
2024-04-12T22:05:18Z
Rice
1
Add text showing price benefits of video game controller
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price.
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
15e0d53e01187b0213ee42fe27b49ed453464bab
1478
1477
2024-04-12T22:15:41Z
Tadeo
1451
Add macOS warning for plover_controller
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. Note: as per the project's README, there may be issues using it with macOS.
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
1634f5521c04e1e154c0c22c455457b2f79b5ebd
1619
1478
2024-04-14T20:04:16Z
Rice
1
video game controller note update
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machines designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
a64a7340238a0941740ae3e722fa1923d9029a00
1620
1619
2024-04-14T20:05:08Z
Rice
1
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].<span id="how-do-i-know-if-my-keyboard-has-nkro"></span>
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
59a66ff8f9aae0f54bdbbc2d4153b02ed29ae7c4
MediaWiki:Common.js
8
67
1453
590
2024-04-12T21:43:05Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
c683371d05d542269faf889d6af5049f38633da6
1454
1453
2024-04-12T21:45:09Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
<script>
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>
df20a0407425ebe6a04e510cd4c392b283d71af0
1455
1454
2024-04-12T21:46:08Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
<script>
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = 0;
backToTopButton.style.left = 0;
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>
2853e7fd3d22e36a46fc20735795cbfb55ec87d7
1456
1455
2024-04-12T21:46:44Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = 0;
backToTopButton.style.left = 0;
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
f1830e3174755a0919b59f0d428be641ba68b17c
1458
1456
2024-04-12T21:49:07Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = 0;
backToTopButton.style.left = 0;
backToTopButton.style.position = fixed;
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
66c0e0baf2776f0815289d929363d8f255e1f54e
1459
1458
2024-04-12T21:49:14Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = 0;
backToTopButton.style.left = 0;
backToTopButton.style.position = "fixed";
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
f0374fd81d3599e99be76a6bb67fff279b5c9d9c
1460
1459
2024-04-12T21:50:10Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = 0;
backToTopButton.style.left = 0;
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
65b2afb82a07938920f9b0225e1823bda18cf44d
1462
1460
2024-04-12T21:50:53Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "2rem";
backToTopButton.style.height = "2rem"
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
4b813579cd766a6af7f3cf9d5996aeb5ab69063f
1463
1462
2024-04-12T21:51:18Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
11cb0429200dae81fd6688bb6038cabb85c9480d
1464
1463
2024-04-12T21:51:52Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
backToTopButton.style.padding = "4px"
document.body.appendChild(backToTopButton);
window.addEventListener('scroll', function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
7f9d309ddf5e9c9509ae2d5e18bf423e7be53089
1465
1464
2024-04-12T21:53:21Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
backToTopButton.style.padding = "4px"
document.body.appendChild(backToTopButton);
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(listener, function(){
window.addEventListener(listener, function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
}
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
9322d836fb1ecdf2b5d504e3c768fa3d7ce0dfa9
1466
1465
2024-04-12T21:53:56Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
backToTopButton.style.padding = "4px"
document.body.appendChild(backToTopButton);
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(listener, function(){
window.addEventListener(listener, function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
)}
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
5c7353b9eb6f97bee977442db51caa9d6ac0d92c
1467
1466
2024-04-12T21:54:23Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
backToTopButton.style.padding = "4px"
document.body.appendChild(backToTopButton);
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(listener, function(){
window.addEventListener(listener, function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
})
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
1bc647d999070c1475e96d75e0120928949ef29b
1468
1467
2024-04-12T21:56:12Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem"
backToTopButton.style.padding = "4px"
document.body.appendChild(backToTopButton);
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, function() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
});
});
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
f80fd9aa91411d6935780b169a944e6a49edd5dc
1469
1468
2024-04-12T21:57:09Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem";
backToTopButton.style.padding = "4px";
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
12d007961936d0562a05fbf7f83d191c486e8297
1470
1469
2024-04-12T21:57:43Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "1.5em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "2rem";
backToTopButton.style.height = "2rem";
backToTopButton.style.padding = "4px";
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
3a6b00bb41d0b7a10f8602799f0c47cb5523495c
1471
1470
2024-04-12T21:58:29Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = '↑';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "2em";
backToTopButton.style.fontWeight = "bold";
backToTopButton.style.width = "3rem";
backToTopButton.style.height = "3rem";
backToTopButton.style.padding = "4px";
// Center the arrow vertically and horizontally within the button
backToTopButton.style.textAlign = "center";
backToTopButton.style.lineHeight = backToTopButton.style.height;
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
f18f65138be57cece9816cebfbec96c17a70e14b
1472
1471
2024-04-12T21:59:36Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = 'Top';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
backToTopButton.style.fontSize = "1.5em";
backToTopButton.style.fontWeight = "bold";
// Center the arrow vertically and horizontally within the button
backToTopButton.style.textAlign = "center";
backToTopButton.style.lineHeight = backToTopButton.style.height;
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
e4ae91ca8c7b8897127e17afebb66759ecde27a1
1473
1472
2024-04-12T21:59:49Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = 'Top';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
// Center the arrow vertically and horizontally within the button
backToTopButton.style.textAlign = "center";
backToTopButton.style.lineHeight = backToTopButton.style.height;
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
9e42f1ad67696e4c318b55e7bbc9b9f97562ed9e
1474
1473
2024-04-12T22:00:12Z
Rice
1
javascript
text/javascript
/* Any JavaScript here will be loaded for all users on every page load. */
// Create the back to top button
var backToTopButton = document.createElement('button');
backToTopButton.id = 'back-to-top-btn';
backToTopButton.className = 'back-to-top-btn';
backToTopButton.title = 'Back to Top';
backToTopButton.textContent = 'Back to Top';
backToTopButton.style.bottom = "1rem";
backToTopButton.style.left = "1rem";
backToTopButton.style.position = "fixed";
// Center the arrow vertically and horizontally within the button
backToTopButton.style.textAlign = "center";
backToTopButton.style.lineHeight = backToTopButton.style.height;
document.body.appendChild(backToTopButton);
function updateBackToTopButton() {
if (window.pageYOffset > 0) {
backToTopButton.style.display = 'block';
} else {
backToTopButton.style.display = 'none';
}
}
var eventListeners = ['scroll', 'DOMContentLoaded'];
eventListeners.forEach(function(listener) {
window.addEventListener(listener, updateBackToTopButton); // Attach event listener
});
updateBackToTopButton(); // Call the function once to set initial button display
backToTopButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
626ff833fd4bf2bcfae9edb0999ca6918b6f941e
File:Plover controller diagram.png
6
1150
1475
2024-04-12T22:01:08Z
Rice
1
wikitext
text/x-wiki
plover_controller diagram
694cf17b0fc9ba3b150da478eb42be6df20d0ba4
Dictionary format
0
11
1549
595
2024-04-13T06:32:08Z
Neu neutral
941
/* Sending Symbols */ developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd #representing_onscreen_input_options
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>'''Note:''' The final entry must not have a trailing comma.</blockquote>
[[Category:Plover]]
11cc01ab3f1c1b2b6922b7c6b8d6eb7e0361db60
Plugins
0
45
1560
266
2024-04-13T07:16:25Z
Neu neutral
941
/* Windows */ developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd #representing_onscreen_input_options
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "<kbd><samp>Open file location</samp></kbd>"
# In the folder, hold down Shift and right click
# Select "<kbd><samp>Open PowerShell window here</samp></kbd>"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
fefdf60372b09257ec6ee9c766badf7b14066186
Plover Wiki/fr
0
132
1610
585
2024-04-13T18:51:21Z
Rice
1
Identified as spam by the SmiteSpam extension.
wikitext
text/x-wiki
<languages />
[[File:Plover-mascot-Dolores.svg|alt=Une illustration d'un pluvier (oiseau) montrant un clavier de sténographie au dessous de son aile gauche|frameless|Dolores, la mascotte de Plover |300x300px|right]]
Plover (rime avec l'anglais "lover") est un moteur de sténographie gratuit et source ouverte qui permet aux personnes qui apprennent la sténographie d'écrire dans n'importe quel programme à une vitesse supérieure à 200 mots par minute.
Plover fonctionne sous Windows, macOS et Linux.
[[Beginner's Guide|'''Guide du débutant : Démarrez avec Plover''']]
<div lang="en" dir="ltr" class="mw-content-ltr">
== The Open Steno Project ==
Plover is part of the [http://openstenoproject.org/ Open Steno Project]. The Open Steno Project aims to open up stenography to the general public. The Open Steno Project has manifested as efforts for free software, free learning resources, and open source hardware options.
</div>
== Contribuer au Wiki ==
Les contributions sont les bienvenues, mais les permissions de modification sont limitées aux comptes disposant d'une adresse e-mail validée.
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Translating the Wiki ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The MediaWiki Translation extension is used for internationalizing the Wiki. There is a [[Plover Wiki/Translation instructions|write-up]] on instructions for translation.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<hr />
</div>
[[Spécial :ConfirmEmail|Confirmez votre adresse e-mail ici.]] Assurez-vous de vérifier votre dossier spam.
168ab30a705084a99dca4b0effd57235ec20a3e8
Built-in tools
0
12
1641
122
2024-04-17T06:05:43Z
Neu neutral
941
/* Stroke suggestions */ HTML/Element/kbd #representing_onscreen_input_options
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "show paper tape" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
* Undo last action.
* Remove selected entry/entries.
* Add a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
58e043a5c81b122eb9b15234597d026a9429cf6b
1642
1641
2024-04-17T06:06:35Z
Neu neutral
941
/* Paper tape */ HTML/Element/kbd #representing_onscreen_input_options
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "filter by strokes" field. And to get entries that map to translations containing specific words, use the "filter by translation" field.
The strokes and translations on the list are editable.
Below the list are three buttons:
* Undo last action.
* Remove selected entry/entries.
* Add a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
afadc021f88b141f169df7fb7d64faef19007373
1646
1642
2024-04-17T06:30:21Z
Neu neutral
941
/* Dictionary editor */ oh my God oh my Lord!, SVG! and.. <br /> HTML/Element/kbd #representing_onscreen_input_options
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. For each dictionary, the following information is shown:
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a padlock next to the number. If there's a star there, it's the one that new entries will go into by default.
* A checkbox to enable and disable the dictionary.
* The name of the dictionary.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field.
The strokes and translations on the list are editable.
Listed below are three buttons that can be found at the bottom left-hand side:
# [[File:Undo.svg|link=|32px]] '''Undo''' last action.
# [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries.
# [[File:Add.svg|link=|32px]] '''Add''' a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
43f24f02caaa8e8df6686ed911b41a9731262483
File:Remove.svg
6
1293
1643
2024-04-17T06:20:52Z
Neu neutral
941
plucked from the main Plover install files on local love...
wikitext
text/x-wiki
== Summary ==
plucked from the main Plover install files on local love...
037a11203807a17f8a614a69ada78acbbb709dfe
File:Add.svg
6
1294
1644
2024-04-17T06:21:12Z
Neu neutral
941
plucked from the main Plover install files on local love...
wikitext
text/x-wiki
== Summary ==
plucked from the main Plover install files on local love...
037a11203807a17f8a614a69ada78acbbb709dfe
File:Undo.svg
6
1295
1645
2024-04-17T06:22:49Z
Neu neutral
941
plucked from the main Plover install files on local love... Alḥamdulillāh rabbi l-ʿālamīn!
p.s: may I has this toy plz? <!--https://www.mediawiki.org/wiki/Extension:UploadWizard-->
wikitext
text/x-wiki
== Summary ==
plucked from the main Plover install files on local love... Alḥamdulillāh rabbi l-ʿālamīn!
p.s: may I has this toy plz? <!--https://www.mediawiki.org/wiki/Extension:UploadWizard-->
4ee89f6b114bca683b974b509233a23805558253
Beginner's Guide
0
4
1672
609
2024-04-19T00:57:49Z
Neu neutral
941
/* Keyboard */ [[File:Output=Enabled.png|frameless|right|link=|
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|none|thumb]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
[[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]]
# Run Plover.
# Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
15524996372666ad98410bd0c1edabedc077ccb2
1673
1672
2024-04-19T01:27:20Z
Neu neutral
941
/* Adapt a keyboard for steno use */ turn towards https://plover.wiki/index.php/Supported_Hardware#Keytoppers https://plover.wiki/index.php/Supported_Hardware#keycaps
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|none|thumb]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers]
* [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
[[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]]
# Run Plover.
# Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
33822916c92bbe0fe9c04c248cbf1e6f4d1f8362
1690
1673
2024-04-19T12:34:07Z
Neu neutral
941
u+fdfd, Point links internally... have new lines for unordered list to parse... Alhamdulillah...
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|none|thumb]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers]
* [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
[[File:Output=Enabled.png|frameless|right|link=| a picture of the obvious , inSRUBGT you instructing to enable Plover prior to using it! <br />Say, "Trust me, this even got some of the very best... lol]]
# Run Plover.
# Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]]
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [[Supported_Hardware#Supported_protocols| Supported protocols]] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
9c35128b57c59eea44189aa7f773610c8fcdac27
Talk:Plugins
1
76
1686
261
2024-04-19T10:05:14Z
Neu neutral
941
/* Noobs need not SKR-L to the other half of the page! */ new section
wikitext
text/x-wiki
== Plugins manager usage screenshots ==
Right now, the instructions for using the plugins manager feels very busy. Should we remove the screenshots and replace them with a video?
== Noobs need not SKR-L to the other half of the page! ==
'''Somebody, do something!'''
(S-B TKO S-G TP-BG)--[[User:Neu neutral|Neu neutral]] ([[User talk:Neu neutral|talk]]) 10:05, 19 April 2024 (UTC)
f8d954e0eafa194feaffd67cbedcc33c35d0be2d
Installation Guide
0
8
1691
512
2024-04-19T13:00:08Z
Neu neutral
941
u+fdfd, Point links internally... Alhamdulillah...
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
<!--T:7-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported-Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
d1fdfc4d38bba677258b7ecfa0614f05270f57f1
1693
1691
2024-04-19T13:13:27Z
Neu neutral
941
u+fdfd, Point links internally... Alhamdulillah...
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
<!--T:7-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
58ffc3ef18fbe0eaf2bd169aa175448687da0006
Troubleshooting issues
0
14
1692
298
2024-04-19T13:10:11Z
Neu neutral
941
u+fdfd, Point links internally... Alḥamdulillāh rabbi l-ʿālamīn!!!
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [[Plugins#manually-installing-plugins |manually installing plugins]]<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span>
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
d4df42570389d9cb365dc0bb395ea2f72bb2e6d9
File:Infoinfo.svg
6
1323
1694
2024-04-19T13:32:01Z
Neu neutral
941
infoinfo.svg
32 × 32, 923 bytes
wikitext
text/x-wiki
== Summary ==
infoinfo.svg
32 × 32, 923 bytes
141bdb270c65cfee62bbb89ac12a3205fbdb8e77
Dictionary format
0
11
1697
1549
2024-04-19T13:38:16Z
Neu neutral
941
/* Summary of suggested commands you can cut and paste into your dictionary */ A {{Info-Info|text=
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using _dictionaries_
* symbol, emoji, software command, or a meta command for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote>
[[Category:Plover]]
862a64bbe44c5df834386deeebd39c3cdb463202
1916
1697
2024-05-07T11:02:09Z
Neu neutral
941
/* About Strokes and Dictionaries */ u+fdfd made another list item off this one item,
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using ''dictionaries''
* with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅
* Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/"Add translation" feature, you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
* JSON: how the entry is stored in the JSON file.
* Plover show: how the entry is displayed in Plover "Add translation" dialog. (version 4)
* Plover input: how the entry can be added to the dictionary using Plover "Add translation" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
* Plover output: what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote>
[[Category:Plover]]
bdfb9a2f3cf91c0ddf842223f425d60ac084aa44
1974
1916
2024-05-20T07:39:30Z
Neu neutral
941
/* Escaping Special Characters */ reformat into definition list
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using ''dictionaries''
* with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅
* Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/ [[File:Translation add.svg|link=|32px]][[Built-in_Tools#Add_translation_dialog|Add translation feature]], you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
; '''JSON:'''
:how the entry is stored in the JSON file.
; '''Plover show:'''
:how the entry is displayed in Plover [[File:Translation add.svg|link=|32px]] "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. (version 4)
; '''Plover input:'''
:how the entry can be added to the dictionary using Plover "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
; '''Plover output:'''
:what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote>
[[Category:Plover]]
bb68d3c8cf5c08da85c5b608072fe66faf52b5b3
FAQ
0
15
1698
138
2024-04-20T12:00:26Z
Neu neutral
941
u+fdfd, Point links internally... Alhamdulillah...
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Typing World Record
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|360 WPM
|}
In the first year of steno school, many students learn to exceed 100 words per minute. By comparison, top qwerty typists can do 120 WPM, top Dvorak typists around 140 WPM, and voice writers dictating to voice recognition software around 180 WPM. But experienced stenographers can enter text at up to 300 words per minute (the world record is actually 360, but that's an outlier). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine.It is a small Python application that you run in the background. It acts as a translator to read steno movements and then emulate keystrokes, so the programs you use can't tell that you are using steno.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current lead developer is Theodore (Ted) Morin.
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, Qwerty is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a qwerty or dvorak keyboard layout to type everything out character by character. If you ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (qwerty, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://www.guinnessworldrecords.com/world-records/fastest-realtime-court-reporter-(stenotype-writing) the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). The world record typist, Barbara Blackburn, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [[The_Steno_Community |Plover discord]], people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high.
Some people are experimenting with voice typing technology, where someone who knows the voice recognition software well speaks into a special mic.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do!
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
b7bc49f7896ac7fe0f074277ec71703650dd55ef
Invoke Plover from the command line
0
49
1718
600
2024-04-23T04:08:56Z
Neu neutral
941
u+fdfd,__TOC__ for quick page navigation!!!
wikitext
text/x-wiki
__TOC__
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph-usb
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference]<sup>[external link]</sup> for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph-usb
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
== Linux (AppImage) ==
# Execute the command in the command-line:
plover.AppImage -s plover_plugins install plover-stenograph-usb
4836717de7b67632f4f743f0b9645e5955b44581
1719
1718
2024-04-23T04:38:07Z
Neu neutral
941
all external links are with the symbol → → plover.wiki/resources/src/mediawiki.skinning/images/external-ltr.svg?59558
wikitext
text/x-wiki
__TOC__
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph-usb
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph-usb
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
== Linux (AppImage) ==
# Execute the command in the command-line:
plover.AppImage -s plover_plugins install plover-stenograph-usb
62f5681d72e2fb6074404560880348feddd183f9
2123
1719
2024-06-15T15:54:07Z
Aerick
9
/* Linux (AppImage) */
wikitext
text/x-wiki
__TOC__
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph-usb
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph-usb
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb
== Linux (AppImage) ==
# Navigate to the folder containing the AppImage
# Execute the command in the command-line (note that the filename depends on the version):
./plover.AppImage -s plover_plugins install plover-stenograph-usb
47718a81b383dd3981e91687286e82c90bf98c12
Open Steno Project timeline
0
13
1771
123
2024-04-25T10:22:44Z
Neu neutral
941
/* 14 August 2023 */ Di of didoesdigital completely rewrites the website's Stenography Lesson Generator
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== 14 August 2023 ===
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
[[Category:Plover]]
1ef43b90c6cc20da53fbfc7023f01a118a89f674
1772
1771
2024-04-25T10:47:32Z
Neu neutral
941
A StenoToppers! as a part of the project's historical !
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
[[Category:Plover]]
d9c82b7bb08a301d21a0abc6f902bb4c9c1a26ec
1773
1772
2024-04-25T11:06:47Z
Neu neutral
941
A factual event that is unwritten by good sysop duty! (co-ordinated spam attack averted)
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
148ba94892b32d481b568576914ed475b556dbb0
1774
1773
2024-04-26T00:47:40Z
Neu neutral
941
A world's first steno playthrough of Doom typist
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
2a35e1dbed7adbe7c3e0f267ba4764ab5cd491ca
1775
1774
2024-04-26T01:04:02Z
Neu neutral
941
A Open Steno / Plover Meetup, 22 January 2022
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
d22e3cd8ca5612439d9b9570c77526039f7bf388
1776
1775
2024-04-26T01:26:45Z
Neu neutral
941
A initial point of Art of Chording!
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on Art of Chording! The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
1575b645aad3ec45e5a41dc34b9dc59e3176eca3
1777
1776
2024-04-26T01:27:36Z
Neu neutral
941
/* September 2018 */ link to Art of Chording!
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her Steno 101 series.
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
892d4091f3d31c1cff8675b3d03fe5ab4997938f
1778
1777
2024-04-26T01:33:47Z
Neu neutral
941
/* June 2010 */ link to Steno 101 series.
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.]
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the [http://www.stenoboard.com/ Stenoboard], an open source stenographic split 3D-printed keyboard.
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
8f19c18ebc3a46a627347041334b46a620994d39
1779
1778
2024-04-26T01:39:04Z
Neu neutral
941
/* April 2014 */ comment out dead link...
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.]
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard.
<!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,-->
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
8b88fdf270de24702aebe44080e394c57e005360
Plugins
0
45
1854
1560
2024-04-28T04:43:40Z
Neu neutral
941
/* Plugin Development */ I did what I know I could...
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
# Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
# Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "<kbd><samp>Open file location</samp></kbd>"
# In the folder, hold down Shift and right click
# Select "<kbd><samp>Open PowerShell window here</samp></kbd>"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
de597884c14768fde4fbf05aa78c41db02648b17
1855
1854
2024-04-28T04:52:15Z
Neu neutral
941
/* Plugins not on PyPI */ u+fdfd, nest steps that are for 'Verify git is working',
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>'''NOTE:''' if the plugins manager is not an option, try uninstalling Plover and [[Installation Guide|re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
#* Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "<kbd><samp>Open file location</samp></kbd>"
# In the folder, hold down Shift and right click
# Select "<kbd><samp>Open PowerShell window here</samp></kbd>"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
7aa2b875ef707767477b3a5b4f00ecd2e317f52c
1857
1855
2024-04-28T05:22:07Z
Neu neutral
941
u+fdfd, 1. have a neat line around NOTE block 2. attempt to disambiguate built-in (pre-installed) and manual--install , thus requiring a manual install as a fix? hmm..
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote>
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
#* Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "<kbd><samp>Open file location</samp></kbd>"
# In the folder, hold down Shift and right click
# Select "<kbd><samp>Open PowerShell window here</samp></kbd>"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
58e31427c24ebee8806a39b6ff09d57a35c7c03c
1858
1857
2024-04-28T05:35:17Z
Neu neutral
941
/* How to Install Plugins */ u+fdfd, A <br clear=all> frameless are in-line, so this might be the mark up to have following paragraph below the picture! ://www..+wiki.org/wiki/Help:Images#Stopping_the_text_flow
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote>
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all>
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>
#* Copy this to your clipboard
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git]
#* You may need to restart after installing git
# Verify git is working
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS)
#* Type <code>git</code> and press enter
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app
# Select "<kbd><samp>Open file location</samp></kbd>"
# In the folder, hold down Shift and right click
# Select "<kbd><samp>Open PowerShell window here</samp></kbd>"
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
f2aeb71fa8afd7c835db02a37d6d768de0c23f6e
Learning stenography
0
17
1876
287
2024-04-29T02:52:40Z
Neu neutral
941
/* Lapwing textbook */ standardize headings of section
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, PDF) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
25a296b75426c15b2f801f9596e17a34b5af89b2
1877
1876
2024-04-29T02:57:12Z
Neu neutral
941
/* Plover theory textbooks */ include community maintained link to download Learn Plover! PDF file...
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
b5f2bd5126b3fd31f63707dddfbd322b6a09ea93
Using Anki for Learning Stenography
0
30
1878
209
2024-04-29T03:15:26Z
Neu neutral
941
/* Custom Cards */ u+fdfd, system ops, when AEFR shall we have m:Template:Code ?
wikitext
text/x-wiki
<span id="what-is-anki"></span>
== What is Anki ==
Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control.
It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules.
== Setting up Anki ==
# Download from here: https://apps.ankiweb.net/
# [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]]
== Making your own deck ==
Making your own deck allows you to have greater control over the cards (e.g. what briefs)
The most basic way is to use the default deck and add cards to it. "Front" and "Back" can be whatever you want, though most people put the translation on the front and the steno stroke on the back.
=== Custom Fields ===
Instead of just "Front" and "Back", you might want more fields like "Pseudo Steno", "Stroke Diagram", "Notes" etc.
# [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for
# [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want
# Add the new fields to the card template (see [[#custom-cards|custom cards]])
=== Custom Cards ===
The default cards have the "Front" field, and when you answer it shows the "Back" field, as well as a reverse card. If you want to show more fields, you'll have to customise your card.
See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this.
Particular things that are useful for steno are:
* [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech]
<pre>{{tts en_US:Front}}</pre>
Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices.
* [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling]
in the card:
<pre><span class="diagram">{{Strokes}}</span></pre>
in the styling:
<syntaxhighlight lang="css">.diagram {
font-family: "Stenodisplay Classic"
}</syntaxhighlight>
There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields.
The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck.
* [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input]
<pre>{{type:Back}}</pre>
Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes.
You might want a separate field for checking, since you may want prefix/suffix cards like "{^ing}" but what you type out is actually "ing". Anki does not use this to pick the rating of the card.
It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory.
/* options are disc, circle, square, none */
-webkit-text-security: disc;
== Pre-made Decks ==
* [https://github.com/rchern/steno-anki rchern/steno-anki]
** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons
** Top 10K Words
** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries
** Other community-contributed shared decks
** Script to generate cards from text file
* [https://github.com/jladdjr/anki-decks jladdjr/anki-decks]
** Top 10,000 Project Gutenberg words
** Basic sounds
* [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes]
** A small deck with cards on steno order and phonetic strokes
* [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover]
** Complete plover dictionary
<span id="useful-anki-add-ons"></span>
== Useful Anki Add-ons ==
[https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -> Add-ons -> Get Add-ons.
* [https://ankiweb.net/shared/info/1765221856 Automatic Scoring]
** Automatically selects the difficulty of the card based on how long it took to answer it
** You still have to press "enter" to confirm, so you still have full control
** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be.
** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected.
* [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** Needed for some [[#useful-plover-extensions|useful plover extensions]]
* [https://ankiweb.net/shared/info/754868802 Find Missing Words]
** Paste in a block of text and this will help you find words you don't have cards for
* [https://ankiweb.net/shared/info/817108664 Anki Simulator]
** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want)
* [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version)
** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there.
* [https://ankiweb.net/shared/info/295889520 Mini Format Pack]
** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting
* [https://ankiweb.net/shared/info/1436550454 AwesomeTTS]
** Gives you access to a range of TTS voices and human recorded voices (Forvo).
* [https://github.com/antistic/anki-copy-selection-field Copy selection field]
** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type.
<span id="useful-plover-extensions"></span>
== Useful Plover Extensions ==
* [https://github.com/antistic/plover_cards Plover Cards]
** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki.
** Command to quickly bring up the last X words you typed and their suggestions in an Anki "Add Card" window
** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect]
* [https://github.com/fourshade/spectra_lexer Spectra Lexer]
** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke.
47ad8567db041cc85bd5a5e736d440a6b70f65c5
1879
1878
2024-04-29T03:17:46Z
Neu neutral
941
/* Useful Plover Extensions */ u+fdfd, re-sort to importance...
wikitext
text/x-wiki
<span id="what-is-anki"></span>
== What is Anki ==
Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control.
It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules.
== Setting up Anki ==
# Download from here: https://apps.ankiweb.net/
# [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]]
== Making your own deck ==
Making your own deck allows you to have greater control over the cards (e.g. what briefs)
The most basic way is to use the default deck and add cards to it. "Front" and "Back" can be whatever you want, though most people put the translation on the front and the steno stroke on the back.
=== Custom Fields ===
Instead of just "Front" and "Back", you might want more fields like "Pseudo Steno", "Stroke Diagram", "Notes" etc.
# [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for
# [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want
# Add the new fields to the card template (see [[#custom-cards|custom cards]])
=== Custom Cards ===
The default cards have the "Front" field, and when you answer it shows the "Back" field, as well as a reverse card. If you want to show more fields, you'll have to customise your card.
See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this.
Particular things that are useful for steno are:
* [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech]
<pre>{{tts en_US:Front}}</pre>
Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices.
* [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling]
in the card:
<pre><span class="diagram">{{Strokes}}</span></pre>
in the styling:
<syntaxhighlight lang="css">.diagram {
font-family: "Stenodisplay Classic"
}</syntaxhighlight>
There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields.
The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck.
* [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input]
<pre>{{type:Back}}</pre>
Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes.
You might want a separate field for checking, since you may want prefix/suffix cards like "{^ing}" but what you type out is actually "ing". Anki does not use this to pick the rating of the card.
It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory.
/* options are disc, circle, square, none */
-webkit-text-security: disc;
== Pre-made Decks ==
* [https://github.com/rchern/steno-anki rchern/steno-anki]
** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons
** Top 10K Words
** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries
** Other community-contributed shared decks
** Script to generate cards from text file
* [https://github.com/jladdjr/anki-decks jladdjr/anki-decks]
** Top 10,000 Project Gutenberg words
** Basic sounds
* [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes]
** A small deck with cards on steno order and phonetic strokes
* [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover]
** Complete plover dictionary
<span id="useful-anki-add-ons"></span>
== Useful Anki Add-ons ==
[https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -> Add-ons -> Get Add-ons.
* [https://ankiweb.net/shared/info/1765221856 Automatic Scoring]
** Automatically selects the difficulty of the card based on how long it took to answer it
** You still have to press "enter" to confirm, so you still have full control
** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be.
** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected.
* [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** Needed for some [[#useful-plover-extensions|useful plover extensions]]
* [https://ankiweb.net/shared/info/754868802 Find Missing Words]
** Paste in a block of text and this will help you find words you don't have cards for
* [https://ankiweb.net/shared/info/817108664 Anki Simulator]
** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want)
* [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version)
** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there.
* [https://ankiweb.net/shared/info/295889520 Mini Format Pack]
** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting
* [https://ankiweb.net/shared/info/1436550454 AwesomeTTS]
** Gives you access to a range of TTS voices and human recorded voices (Forvo).
* [https://github.com/antistic/anki-copy-selection-field Copy selection field]
** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type.
<span id="useful-plover-extensions"></span>
== Useful Plover Extensions ==
* [https://github.com/antistic/plover_cards Plover Cards]
** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki.
** Command to quickly bring up the last X words you typed and their suggestions in an Anki "Add Card" window
* [https://github.com/fourshade/spectra_lexer Spectra Lexer]
** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke.
e94fb33eb98344e8389066c8c970f13a55366b42
1880
1879
2024-04-29T03:26:14Z
Neu neutral
941
/* Making your own deck */ u+fdfd,://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd#representing_onscreen_input_options
wikitext
text/x-wiki
<span id="what-is-anki"></span>
== What is Anki ==
Anki is a flashcard program that uses spaced repetition. The basic idea is that if the card is easy you will see it less often, and if the card is hard you will see it more often. Anki does not grade you automatically — you have full control.
It can be useful for learning many things, and for steno people have used it for memorising briefs and theory rules.
== Setting up Anki ==
# Download from here: https://apps.ankiweb.net/
# [[#making-your-own-deck|Make your own deck]] or use a [[#pre-made-decks|pre-made deck]]
== Making your own deck ==
Making your own deck allows you to have greater control over the cards (e.g. what briefs)
The most basic way is to use the default deck and add cards to it. "<kbd><samp>Front</samp></kbd>" and "<kbd><samp>Back</samp></kbd>" can be whatever you want, though most people put the translation on the front and the steno stroke on the back.
=== Custom Fields ===
Instead of just "<kbd><samp>Front</samp></kbd>" and "<kbd><samp>Back</samp></kbd>", you might want more fields like "Pseudo Steno", "Stroke Diagram", "Notes" etc.
# [https://docs.ankiweb.net/editing.html#adding-a-note-type Add a new note type] so that it won't interfere with anything else you might use Anki for
# [https://docs.ankiweb.net/editing.html#customizing-fields Customise the fields] and add whatever you want
# Add the new fields to the card template (see [[#custom-cards|custom cards]])
=== Custom Cards ===
The default cards have the "<kbd><samp>Front</samp></kbd>" field, and when you answer it shows the "<kbd><samp>Back</samp></kbd>" field, as well as a reverse card. If you want to show more fields, you'll have to customise your card.
See the [https://docs.ankiweb.net/templates/intro.html anki docs here], including the next few pages, for how to do this.
Particular things that are useful for steno are:
* [https://docs.ankiweb.net/templates/fields.html#text-to-speech Text to speech]
<pre>{{tts en_US:Front}}</pre>
Read out the text of the card, which is useful if you want to practice from dictation. You can also use the [https://ankiweb.net/shared/info/1436550454 AwesomeTTS] add-on for more voices.
* [https://docs.ankiweb.net/templates/styling.html#field-styling Field Styling]
in the card:
<pre><span class="diagram">{{Strokes}}</span></pre>
in the styling:
<syntaxhighlight lang="css">.diagram {
font-family: "Stenodisplay Classic"
}</syntaxhighlight>
There are lots of ways you can style your fields, like making the notes smaller or colour coding your fields.
The example here uses [https://github.com/Kaoffie/steno_font Kaoffie's Steno Font], which uses a font for the steno strokes to make it into a stroke diagram. You may want to [https://docs.ankiweb.net/templates/styling.html#installing-fonts install the font] into Anki if you can't install fonts on your computer or if you want a portable Anki deck.
* [https://docs.ankiweb.net/templates/fields.html#checking-your-answer Typing input]
<pre>{{type:Back}}</pre>
Type out the field and when you turn the card over it will color code any differences. Some people like to check the translation field, some people like to turn off their dictionaries and check for the strokes.
You might want a separate field for checking, since you may want prefix/suffix cards like "{^ing}" but what you type out is actually "ing". Anki does not use this to pick the rating of the card.
It is also possible to hide the text you are typing by adding the following to your styling. This might be useful if you want to focus on trusting your muscle memory.
/* options are disc, circle, square, none */
-webkit-text-security: disc;
== Pre-made Decks ==
* [https://github.com/rchern/steno-anki rchern/steno-anki]
** [https://www.openstenoproject.org/learn-plover/ Learn Plover!] lessons
** Top 10K Words
** Emily's [https://github.com/EPLHREU/emily-symbols Symbols] and [https://github.com/EPLHREU/emily-modifiers Modifiers] dictionaries
** Other community-contributed shared decks
** Script to generate cards from text file
* [https://github.com/jladdjr/anki-decks jladdjr/anki-decks]
** Top 10,000 Project Gutenberg words
** Basic sounds
* [https://ankiweb.net/shared/info/14548087 Steno order and Phonetic strokes]
** A small deck with cards on steno order and phonetic strokes
* [https://github.com/percidae/Anki_Plover/releases/ percidae/Anki_Plover]
** Complete plover dictionary
<span id="useful-anki-add-ons"></span>
== Useful Anki Add-ons ==
[https://docs.ankiweb.net/addons.html Anki Add-ons] are third party extensions that add features to anki. To install them, go to Tools -> Add-ons -> Get Add-ons.
* [https://ankiweb.net/shared/info/1765221856 Automatic Scoring]
** Automatically selects the difficulty of the card based on how long it took to answer it
** You still have to press "enter" to confirm, so you still have full control
** You may want to adjust the default time to something different. You can [https://docs.ankiweb.net/deck-options.html#general show the answer timer] and look at your [https://docs.ankiweb.net/stats.html#the-graphs answer button graph] to get an idea of what a reasonable time might be.
** Pairs well with [https://ankiweb.net/shared/info/1136455830 Advanced Review Bottom Bar] which makes it easier to see which button has been pre-selected.
* [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** Needed for some [[#useful-plover-extensions|useful plover extensions]]
* [https://ankiweb.net/shared/info/754868802 Find Missing Words]
** Paste in a block of text and this will help you find words you don't have cards for
* [https://ankiweb.net/shared/info/817108664 Anki Simulator]
** Simulates your reviews over time. Useful for choosing settings (e.g. number of new cards a day) that won't overwhelm you. (You can see how long you take per card that day in the Stats window or below the list of decks, and use this to see how many repetitions you want)
* [https://ankiweb.net/shared/info/1686259334 Persistent Editor] (doesn't work with latest Anki version)
** Keeps the editing window open while reviewing (but hides the current card until you've answered it). Useful if you are using a pre-made deck and prefer different briefs to the ones that are there.
* [https://ankiweb.net/shared/info/295889520 Mini Format Pack]
** Gives you more formatting options in the menu. Useful for making lists of alternative strokes, or other formatting
* [https://ankiweb.net/shared/info/1436550454 AwesomeTTS]
** Gives you access to a range of TTS voices and human recorded voices (Forvo).
* [https://github.com/antistic/anki-copy-selection-field Copy selection field]
** Lets you copy several selected entries in the Anki browse window, for example to copy into a practice tool like Steno Jig or Typey Type.
<span id="useful-plover-extensions"></span>
== Useful Plover Extensions ==
* [https://github.com/antistic/plover_cards Plover Cards]
** Requires [https://ankiweb.net/shared/info/2055492159 Anki Connect]
** See previously typed words/phrases, sorted by various properties (e.g. last used, most used), choose your preferred stroke and add them into Anki.
** Command to quickly bring up the last X words you typed and their suggestions in an Anki "Add Card" window
* [https://github.com/fourshade/spectra_lexer Spectra Lexer]
** Analyzes strokes and generates stroke diagrams (click save). Useful for having stroke diagrams which explain the stroke.
ea48787c708c3c1c65c75d486fb1978d1a9dd5fe
Supported hardware
0
10
1882
1620
2024-04-29T03:56:22Z
Neu neutral
941
/* What’s NKRO? */ u+fdfd, emphasis on the meaning of the acronym through repeating it in the next section...
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
e6ab9a134bf707ac0fd7338c29d7ac47c605c878
1883
1882
2024-04-29T03:59:13Z
Neu neutral
941
/* Known supported keyboards */ 🎉 make table sort-able! 🎉
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<a id="notebooks-with-nkro"></a> # Laptops with NKRO
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
d6f5a55ee62fc77f1c935c865bdee22fd20fba9d
1884
1883
2024-04-29T04:21:35Z
Neu neutral
941
/* NKRO keyboards with an ortholinear layout */ u+fdfd, make Laptops with NKRO heading visible again!
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
4306e5795533fae3e39d97b725e369fd7c5078aa
1885
1884
2024-04-29T04:22:25Z
Neu neutral
941
/* Laptops with NKRO */ 🎉 make table sort-able! 🎉
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
a7b0d642493d097e3201525a9c57a7b8f06f15de
1886
1885
2024-04-29T04:45:50Z
Neu neutral
941
/* Commercially Available Hobbyist Machines */ 🎉 make table sort-able! 🎉
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).<span id="whats-nkro"></span>
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards that means that you can press as many keys as you want simultaniously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
bb8c29b0fc8ccec18222b6dc688c82d3e4a4ea28
1891
1886
2024-04-29T06:45:47Z
Neu neutral
941
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
f69c2f4eebe9c843256ff2ae00165eb467f43507
1909
1891
2024-05-02T20:10:24Z
Rice
1
Include directions for excluding keys by overlapping opposite of the initial direction
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude. For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W</code> to exclude <code>W</code>. This will output <code>KHR</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
5d7f56daf25f7bfeca1a689bf8a394739f91e11b
1910
1909
2024-05-02T20:16:46Z
Rice
1
Add another opposite overlap description
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club".
Another common word would be <code>SKP-</code> -> "and". This can be written by pressing the left stick in to select <code>S-</code> and moving the stick either clockwise from <code>K-</code> to <code>P-</code> and then going back to <code>T-</code>, or alternatively moving counter-clockwise from <code>P</code> to <code>K</code> and moving back to T-.
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
5dde83f6b89cdc897a051abbf267973f6a90ee80
1911
1910
2024-05-03T13:42:07Z
Rice
1
/* Skipping Joystick Keys with the Opposite Direction Overlap Method */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
f876e566351d6cad1c1e89ecb4e463f05c6a8531
1912
1911
2024-05-04T22:44:56Z
Rice
1
/* Skipping Joystick Keys with the Opposite Direction Overlap Method */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards use this switch
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| Stenomod uses this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
dd0d29af20f97ad52bbf9fc351c5bc5daeab4186
1958
1912
2024-05-15T23:52:29Z
.kevinlel
1636
updated keyswitches table
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
1165e9c29bf69bf107f1a4708b14e52366ce00f0
File:Settings.svg
6
1397
1892
2024-04-29T07:03:13Z
Neu neutral
941
md:Extension:MediaUploader#Installation
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation
ccc6f53e06a9dcd3687f76bb18c8cdf40ec32e9f
File:State-enabled.svg
6
1398
1893
2024-04-29T07:06:47Z
Neu neutral
941
md:Extension:MediaUploader#Installation? When
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? When
97233aa82c1436db375e42ef0018f5071c3ab8e8
File:Translation add.svg
6
1399
1894
2024-04-29T07:07:20Z
Neu neutral
941
md:Extension:MediaUploader#Installation? When
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? When
97233aa82c1436db375e42ef0018f5071c3ab8e8
File:Tape.svg
6
1400
1895
2024-04-29T07:07:49Z
Neu neutral
941
md:Extension:MediaUploader#Installation? When
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? When
97233aa82c1436db375e42ef0018f5071c3ab8e8
File:Dictionary error.svg
6
1401
1896
2024-04-29T07:08:50Z
Neu neutral
941
md:Extension:MediaUploader#Installation? When
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? When
97233aa82c1436db375e42ef0018f5071c3ab8e8
File:Dictionary readonly.svg
6
1402
1897
2024-04-29T07:09:24Z
Neu neutral
941
md:Extension:MediaUploader#Installation? God willing!
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? God willing!
6bd6250ea4166698da47e30236ef5984b01ad0ec
File:Up.svg
6
1403
1898
2024-04-29T07:09:49Z
Neu neutral
941
md:Extension:MediaUploader#Installation? God willing!
wikitext
text/x-wiki
== Summary ==
md:Extension:MediaUploader#Installation? God willing!
6bd6250ea4166698da47e30236ef5984b01ad0ec
User:Neu neutral/SEAL::Declaration of the Independence of Cyberplane
2
1420
1950
2024-05-15T08:59:49Z
Neu neutral
941
Bismillahirrahmanniraheem,
wikitext
text/x-wiki
<div class="lefthand-sidebar-main-column">
<div class="panel-pane pane-page-title">
<h1>A Declaration of the Independence of Cyberspace</h1>
</div>
<div class="panel-pane pane-page-content">
<div class="long-read">
<div class="onecol column content-wrapper">
</div>
<div class="onecol column content-banner">
</div>
<div class="onecol column content-wrapper">
<div class="column main-content">
<div class="panel-pane pane-node-content">
<article role="article" class="node node--page node--full node--page--full">
<div class="node__content">
<div class="eff-translation-links"></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><div class="byline">by John Perry Barlow </div><p>Governments of the Industrial World, you weary giants of flesh and steel, I come from Cyberspace, the new home of Mind. On behalf of the future, I ask you of the past to leave us alone. You are not welcome among us. You have no sovereignty where we gather.</p><p>We have no elected government, nor are we likely to have one, so I address you with no greater authority than that with which liberty itself always speaks. I declare the global social space we are building to be naturally independent of the tyrannies you seek to impose on us. You have no moral right to rule us nor do you possess any methods of enforcement we have true reason to fear.</p><p>Governments derive their just powers from the consent of the governed. You have neither solicited nor received ours. We did not invite you. You do not know us, nor do you know our world. Cyberspace does not lie within your borders. Do not think that you can build it, as though it were a public construction project. You cannot. It is an act of nature and it grows itself through our collective actions.</p><p>You have not engaged in our great and gathering conversation, nor did you create the wealth of our marketplaces. You do not know our culture, our ethics, or the unwritten codes that already provide our society more order than could be obtained by any of your impositions.</p><p>You claim there are problems among us that you need to solve. You use this claim as an excuse to invade our precincts. Many of these problems don't exist. Where there are real conflicts, where there are wrongs, we will identify them and address them by our means. We are forming our own Social Contract. This governance will arise according to the conditions of our world, not yours. Our world is different.</p><p>Cyberspace consists of transactions, relationships, and thought itself, arrayed like a standing wave in the web of our communications. Ours is a world that is both everywhere and nowhere, but it is not where bodies live.</p><p>We are creating a world that all may enter without privilege or prejudice accorded by race, economic power, military force, or station of birth.</p><p>We are creating a world where anyone, anywhere may express his or her beliefs, no matter how singular, without fear of being coerced into silence or conformity.</p><p>Your legal concepts of property, expression, identity, movement, and context do not apply to us. They are all based on matter, and there is no matter here.</p><p>Our identities have no bodies, so, unlike you, we cannot obtain order by physical coercion. We believe that from ethics, enlightened self-interest, and the commonweal, our governance will emerge. Our identities may be distributed across many of your jurisdictions. The only law that all our constituent cultures would generally recognize is the Golden Rule. We hope we will be able to build our particular solutions on that basis. But we cannot accept the solutions you are attempting to impose.</p><p>In the United States, you have today created a law, the Telecommunications Reform Act, which repudiates your own Constitution and insults the dreams of Jefferson, Washington, Mill, Madison, DeToqueville, and Brandeis. These dreams must now be born anew in us.</p><p>You are terrified of your own children, since they are natives in a world where you will always be immigrants. Because you fear them, you entrust your bureaucracies with the parental responsibilities you are too cowardly to confront yourselves. In our world, all the sentiments and expressions of humanity, from the debasing to the angelic, are parts of a seamless whole, the global conversation of bits. We cannot separate the air that chokes from the air upon which wings beat.</p><p>In China, Germany, France, Russia, Singapore, Italy and the United States, you are trying to ward off the virus of liberty by erecting guard posts at the frontiers of Cyberspace. These may keep out the contagion for a small time, but they will not work in a world that will soon be blanketed in bit-bearing media.</p><p>Your increasingly obsolete information industries would perpetuate themselves by proposing laws, in America and elsewhere, that claim to own speech itself throughout the world. These laws would declare ideas to be another industrial product, no more noble than pig iron. In our world, whatever the human mind may create can be reproduced and distributed infinitely at no cost. The global conveyance of thought no longer requires your factories to accomplish.</p><p>These increasingly hostile and colonial measures place us in the same position as those previous lovers of freedom and self-determination who had to reject the authorities of distant, uninformed powers. We must declare our virtual selves immune to your sovereignty, even as we continue to consent to your rule over our bodies. We will spread ourselves across the Planet so that no one can arrest our thoughts.</p><p>We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before.</p><p>Davos, Switzerland<br>February 8, 1996</p>
</div></div></div> </div>
</article>
</div>
</div>
<div class="column side-content">
</div>
</div>
<div class="onecol column content-footer">
</div>
</div>
</div>
</div>
5c44ac3c3db78a38e58e630c2c71e7de7ed7e398
1951
1950
2024-05-15T09:00:19Z
Neu neutral
941
Neu neutral moved page [[User:Neu neutral/DRAFTS::Declaration of the Independence of Cyberplane]] to [[User:Neu neutral/SEAL::Declaration of the Independence of Cyberplane]]: Misspelled title
wikitext
text/x-wiki
<div class="lefthand-sidebar-main-column">
<div class="panel-pane pane-page-title">
<h1>A Declaration of the Independence of Cyberspace</h1>
</div>
<div class="panel-pane pane-page-content">
<div class="long-read">
<div class="onecol column content-wrapper">
</div>
<div class="onecol column content-banner">
</div>
<div class="onecol column content-wrapper">
<div class="column main-content">
<div class="panel-pane pane-node-content">
<article role="article" class="node node--page node--full node--page--full">
<div class="node__content">
<div class="eff-translation-links"></div><div class="field field--name-body field--type-text-with-summary field--label-hidden"><div class="field__items"><div class="field__item even"><div class="byline">by John Perry Barlow </div><p>Governments of the Industrial World, you weary giants of flesh and steel, I come from Cyberspace, the new home of Mind. On behalf of the future, I ask you of the past to leave us alone. You are not welcome among us. You have no sovereignty where we gather.</p><p>We have no elected government, nor are we likely to have one, so I address you with no greater authority than that with which liberty itself always speaks. I declare the global social space we are building to be naturally independent of the tyrannies you seek to impose on us. You have no moral right to rule us nor do you possess any methods of enforcement we have true reason to fear.</p><p>Governments derive their just powers from the consent of the governed. You have neither solicited nor received ours. We did not invite you. You do not know us, nor do you know our world. Cyberspace does not lie within your borders. Do not think that you can build it, as though it were a public construction project. You cannot. It is an act of nature and it grows itself through our collective actions.</p><p>You have not engaged in our great and gathering conversation, nor did you create the wealth of our marketplaces. You do not know our culture, our ethics, or the unwritten codes that already provide our society more order than could be obtained by any of your impositions.</p><p>You claim there are problems among us that you need to solve. You use this claim as an excuse to invade our precincts. Many of these problems don't exist. Where there are real conflicts, where there are wrongs, we will identify them and address them by our means. We are forming our own Social Contract. This governance will arise according to the conditions of our world, not yours. Our world is different.</p><p>Cyberspace consists of transactions, relationships, and thought itself, arrayed like a standing wave in the web of our communications. Ours is a world that is both everywhere and nowhere, but it is not where bodies live.</p><p>We are creating a world that all may enter without privilege or prejudice accorded by race, economic power, military force, or station of birth.</p><p>We are creating a world where anyone, anywhere may express his or her beliefs, no matter how singular, without fear of being coerced into silence or conformity.</p><p>Your legal concepts of property, expression, identity, movement, and context do not apply to us. They are all based on matter, and there is no matter here.</p><p>Our identities have no bodies, so, unlike you, we cannot obtain order by physical coercion. We believe that from ethics, enlightened self-interest, and the commonweal, our governance will emerge. Our identities may be distributed across many of your jurisdictions. The only law that all our constituent cultures would generally recognize is the Golden Rule. We hope we will be able to build our particular solutions on that basis. But we cannot accept the solutions you are attempting to impose.</p><p>In the United States, you have today created a law, the Telecommunications Reform Act, which repudiates your own Constitution and insults the dreams of Jefferson, Washington, Mill, Madison, DeToqueville, and Brandeis. These dreams must now be born anew in us.</p><p>You are terrified of your own children, since they are natives in a world where you will always be immigrants. Because you fear them, you entrust your bureaucracies with the parental responsibilities you are too cowardly to confront yourselves. In our world, all the sentiments and expressions of humanity, from the debasing to the angelic, are parts of a seamless whole, the global conversation of bits. We cannot separate the air that chokes from the air upon which wings beat.</p><p>In China, Germany, France, Russia, Singapore, Italy and the United States, you are trying to ward off the virus of liberty by erecting guard posts at the frontiers of Cyberspace. These may keep out the contagion for a small time, but they will not work in a world that will soon be blanketed in bit-bearing media.</p><p>Your increasingly obsolete information industries would perpetuate themselves by proposing laws, in America and elsewhere, that claim to own speech itself throughout the world. These laws would declare ideas to be another industrial product, no more noble than pig iron. In our world, whatever the human mind may create can be reproduced and distributed infinitely at no cost. The global conveyance of thought no longer requires your factories to accomplish.</p><p>These increasingly hostile and colonial measures place us in the same position as those previous lovers of freedom and self-determination who had to reject the authorities of distant, uninformed powers. We must declare our virtual selves immune to your sovereignty, even as we continue to consent to your rule over our bodies. We will spread ourselves across the Planet so that no one can arrest our thoughts.</p><p>We will create a civilization of the Mind in Cyberspace. May it be more humane and fair than the world your governments have made before.</p><p>Davos, Switzerland<br>February 8, 1996</p>
</div></div></div> </div>
</article>
</div>
</div>
<div class="column side-content">
</div>
</div>
<div class="onecol column content-footer">
</div>
</div>
</div>
</div>
5c44ac3c3db78a38e58e630c2c71e7de7ed7e398
Built-in tools
0
12
1978
1646
2024-05-20T08:55:23Z
Neu neutral
941
/* Dictionaries field */ u+fdfd, sorted list, placed in icons at suitable locations... Alhamdulillah...
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. <br />For each dictionary, the following information is shown:
* The name of the dictionary.
* A checkbox to enable and disable the dictionary.
* If there's a star there, it's the one that new entries will go into by default.
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, you are able to do so in two ways as follows:
# select the dictionary , drag and drop to preferred location of priority
# select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a [[File:Dictionary readonly.svg|link=|32px]]padlock next to the number.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* [[File:Up.svg|link=|32px]]Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field.
The strokes and translations on the list are editable.
Listed below are three buttons that can be found at the bottom left-hand side:
# [[File:Undo.svg|link=|32px]] '''Undo''' last action.
# [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries.
# [[File:Add.svg|link=|32px]] '''Add''' a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
57c3f95472cba689d686ab0c837e71d97c17f4e7
Troubleshooting issues
0
14
1984
1692
2024-05-21T14:46:46Z
MegaMichelle
1638
Explain how to fix missing or jumbled output on linux.
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
If you’re running Plover 4.x and are missing the plugins manager or it’s not working as expected, you can try [[Plugins#manually-installing-plugins |manually installing plugins]]<span id="dictionary-issues"></span>
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> The solution is to go open Plover's configuration dialog, navigate to the "Output" tab, and increase the "Key press delay".
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
84d51be3777a44d6ad55deebddbc2810d30c31d0
Glossary
0
16
2107
139
2024-06-14T02:52:35Z
Neu neutral
941
an chore link fix 🔨 Alhamdulillah...
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the outline <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
7367a3d7f55b09b1d7c77093b8cf0ddcf1cc93ac
2108
2107
2024-06-14T02:55:24Z
Neu neutral
941
/* Stroke */ u+fdfd,add same page anchor link-ing 🌱 Glossary#Outline
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
030852923fa71b2e33bb1631e66534a5a85684e0
Troubleshooting issues
0
14
2124
1984
2024-06-15T16:04:41Z
Aerick
9
/* Plugins Manager */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
* IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>).<span id="linux-dynamic-keyboard-layout-switching-is-not-working"></span> The solution is to go open Plover's configuration dialog, navigate to the "Output" tab, and increase the "Key press delay".
=== Linux dynamic keyboard layout switching is not working ===
* Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].<span id="delayedslow-output-when-using-gnome-shell-and-the-keyboard-machine"></span>
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
* It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
4f30de7de86f82eeed79aa8c64ea4ddf7c33f84d
2126
2124
2024-06-15T16:08:44Z
Aerick
9
/* Missing or jumbled output */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
<span id="missing-or-jumbled-output"></span>
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|none|thumb|Increase the key press delay to fix transposed or transposed letters.]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
d7f57f25e9670acef79a23133644174fe0266def
2127
2126
2024-06-15T16:13:44Z
Aerick
9
/* Missing or jumbled output */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== Plover does not run ===
<ul>
<li><p>If you use a keyboard instead of a steno machine, Plover needs [https://support.apple.com/en-ca/guide/mac-help/mh43185/mac Assistive Device Permissions].</p>
<ul>
<li>If Plover does not have the permission, you’ll see the error message <code>Exception: Enable access for assistive devices.</code>
</li>
<li><p>From the Catalina version of macOS, you may need to enable both the <code>Plover</code> app and the <code>env</code> app under Security & Privacy > Privacy > Accessibility.</p>
<p>Alternatively, upgrade Plover to a newer version. See [https://github.com/openstenoproject/plover/issues/1134 issue 1134] for more details.</p></li>
<li><p>If Plover is shown to have Accessibility permissions but it still won’t output anything/shows the error message above, there may be something wrong with the permissions.</p>
<p>(some situations such as operating system upgrade/Plover version upgrade might trigger this issue.)</p>
<p>There are several ways you can try to fix them, from least destructive to most destructive:</p>
<ol style="list-style-type: decimal;">
<li><p>Removing Plover from the list of Accessibility permissions using the little <code>-</code> button below the list. After removing Plover from the list, restart Plover, enable output and start writing, it should ask again for permission and reappear in the list for you to enable.</p></li>
<li><p>Resetting the Accessibility permissions should clear the list and you will have to re-enable Accessibility permissions for every app that was enabled before. To reset the permissions, open a terminal (Applications > Utilities > Terminal.app), copy/paste the following command and press Enter:</p>
<pre>sudo tccutil reset Accessibility</pre>
<p>Enter your password and press Enter again. Restart Plover, enable output, and it should ask again for permission when it tries to output text as you write.</p></li>
<li><p>Same as solution #2 but resetting all of the permissions, not just the Accessibility ones. The instructions are the same, but copy/pasting this command instead.</p>
<pre>sudo tccutil reset All</pre></li>
<li><p>Alternatively, as a debugging step, [[Invoke_Plover_from_the_Command_Line| invoke Plover in the terminal]] with the command</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover</pre>
<p>then grant Terminal assistive permission. (remember to revoke the permission after the possible is fixed to avoid potential security issues!)</p></li></ol>
</li>
<li><p>Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover.</p></li></ul>
</li></ul><span id="unrecognized-keystrokes"></span>
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
a01cd66a3ab8982586d09210aaa557d40c805df1
2129
2127
2024-06-15T16:29:51Z
Aerick
9
permissions fix was way too verbose
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate| arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.<span id="when-using-tx-bolt-any-chord-with-sw--in-it-doesnt-come-out-right"></span>
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
<span id="plover-does-not-run"></span>
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will need to set up your machine correctly first.
#* If you see keys, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
695f13503cafbb4aee99ebae93985730b3f3342c
2137
2129
2024-06-15T17:24:58Z
Aerick
9
/* No output despite keys showing up in the paper tape */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]].
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix transposed or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
56a28f0756d03fac336a15c1aee1530839ba62fd
2142
2137
2024-06-16T01:07:47Z
Aerick
9
/* Missing or jumbled output */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]].
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
3cec0276dcf6af30baa9db3bd11ea70ebeacf1fe
2143
2142
2024-06-16T01:08:52Z
Aerick
9
/* Plover not working on Wayland */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually installing plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]].
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
4d5bdc2f027649b6bd2bcd162dae0dc1433c11c8
File:Key press delay.png
6
1479
2125
2024-06-15T16:07:52Z
Aerick
9
wikitext
text/x-wiki
key press delay in the configuration
47d8318fb3a2e09902bd7adcd5e304abd7082641
Installation Guide
0
8
2128
1693
2024-06-15T16:19:01Z
Aerick
9
/* Download Plover for Mac here */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
<!--T:7-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
8d17bb0cb0c22b54b2ff1d884054f6dcbd187b9a
2150
2128
2024-06-17T03:59:22Z
Aerick
9
/* Download Plover for Mac here */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
edbb3d278a43df2fed1f83a9c55b423abbd003f7
2171
2150
2024-06-19T02:47:26Z
Aerick
9
/* Install Plover on Windows (typo)*/
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
bff135a4647b91f9446606241fa46f47f3e1c7ab
2172
2171
2024-06-19T02:49:34Z
Aerick
9
/* Allow Access to Serial Ports */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the page on [https://plover.wiki/index.php/Plugins#Manually_Installing_Plugins manually installing] this plugin.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
26404ab5e886307c48037f4244b7ddd8ca19076d
File:Machine tab with Gemini PR and Refresh highlighted.png
6
1480
2130
2024-06-15T16:59:07Z
Aerick
9
wikitext
text/x-wiki
Machine tab with Gemini PR and Refresh highlighted
a6d062adafcad01532bd26cdaccca7a47789277d
File:Machine tab with drop down items highlighted.png
6
1481
2131
2024-06-15T17:02:41Z
Aerick
9
wikitext
text/x-wiki
machine tab with drop down items highlighted
24c3f21edb04d9b80d712abd3d9c31272fd47145
File:Machine tab with drop down menu and COM3 highlighted.png
6
1482
2132
2024-06-15T17:06:50Z
Aerick
9
wikitext
text/x-wiki
machine tab with drop down menu and COM3 highlighted
a21dbb7ef8680896d89407d8cba3441d9266977f
File:Machine tab Gemini PR, refresh, and drop down options highlighted.png
6
1483
2133
2024-06-15T17:11:57Z
Aerick
9
wikitext
text/x-wiki
machine tab Gemini PR, refresh, and drop down options highlighted
c07f926c3914ccae2e9c2035d6a0a5f16ee5072b
File:Plover main window with reconnect machine button highlighted.png
6
1484
2134
2024-06-15T17:18:01Z
Aerick
9
wikitext
text/x-wiki
Plover main window with reconnect machine button highlighted
e0a25aaf3593fdae578abbd75549ac120795df19
Supported hardware
0
10
2135
1958
2024-06-15T17:19:30Z
Aerick
9
Add instructions for setting up hobbyist machine.
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below.
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>OK</code> and <code>Apply</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>OK</code> and <code>Apply</code>.
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
f30f97bd2701c172f9d489af4850c935d70ec8f3
2136
2135
2024-06-15T17:22:51Z
Aerick
9
Add video for setting up machine with plover
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>OK</code> and <code>Apply</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>OK</code> and <code>Apply</code>.
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.<span id="out-of-production-machines"></span>
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
705119574c1a2628d90c521c891058dd5a6cf92b
2138
2136
2024-06-15T17:40:37Z
Aerick
9
/* Setting Up a Hobbyist Machine With Plover */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of April 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of April 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of January 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of April 2024): Out of stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]].
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
9707961aa610da93355b535244bc1aade02c5c25
2169
2138
2024-06-19T02:43:13Z
Aerick
9
Update stock status
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in for use with Plover without having to enable or disable the output. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]].
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
5fe9e1f7c89672c16111d3fad9ddc60dfb5aa66f
2170
2169
2024-06-19T02:44:41Z
Aerick
9
/* Setting Up a Hobbyist Machine With Plover (conciseness) */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]].
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
baed53d0b6ea43ceb9f04fd87110c9cc3ff36b27
2176
2170
2024-06-23T15:03:27Z
Aerick
9
/* Autoreconnect */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[Autoreconnect]] page.
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
082990517dc80339860247b8fec00be7cd26fbba
Plugins
0
45
2139
1858
2024-06-15T17:43:15Z
Aerick
9
/* Windows */
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart plover after installing/updating/removing plugins
<blockquote>{{Box-text-only|text='''NOTE:''' if the built-in plugins manager is not an option,[[Installation Guide| try uninstalling Plover and re-installing the newest version]]. If that does not work, you may have to [[Plugins#Manually_Installing_Plugins|manually install]] the <code>plover-plugins-manager</code>.}}</blockquote>
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all>
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository.
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>.
#* Copy this to your clipboard.
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git].
#* You may need to restart after installing git.
# Verify git is working.
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS).
#* Type <code>git</code> and press enter.
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app.
# Select <kbd><samp><code>Open file location</code></samp></kbd>.
# In the folder, hold down the Shift key and right click.
# Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>.
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
849f04683b259a63ec1f4f97b11a95b93e5609b8
2140
2139
2024-06-15T17:48:05Z
Aerick
9
/* Via the built-in Plugins Manager (recommended) */
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart Plover after installing/updating/removing plugins
<blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote>
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all>
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository.
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>.
#* Copy this to your clipboard.
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git].
#* You may need to restart after installing git.
# Verify git is working.
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS).
#* Type <code>git</code> and press enter.
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app.
# Select <kbd><samp><code>Open file location</code></samp></kbd>.
# In the folder, hold down the Shift key and right click.
# Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>.
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
22391aa5ea06a820e939274a8a8eab204a4202a7
2141
2140
2024-06-15T17:56:55Z
Aerick
9
/* Types of Plugins */
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
* Right click the plover icon
* Go to <code>Tools → Plugins Manager</code>
* The plugins manager window should appear. Here you can browse through the available plugins. You can click on the plugin to view more information and select <code>Install/Update</code> to install the plugin.
* You need to restart Plover after installing/updating/removing plugins
<blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote>
The following screenshots were made on macOS Monterey using Plover 4 (specifically 4.0.0.dev10+120.g4394ef1). If you see something different, please edit this page and add a screenshot!
* In Plover, click on the Plugins Manager:
[[File:Image.png|alt=plugins manager icon, located in the top bar of the plover GUI|frameless|799x799px]]
* In the Plugins Manager, choose a plugin you want to install and click "Install/Update":
[[File:Plover-dict-commands.png|alt=shows plover-dict-commands in the plover-plugins-manager window|frameless|800x800px]]
* You should see a warning. It's true, installing plugins is a security risk. Before choosing "Yes", you might take the time to learn more about the plugin itself.
[[File:Plugins-security-risk.png|alt=Warning when installing plugins: installing plugins is a security risk. A plugin can contain virus/malware. Only install it if you got it from a trusted source. Are you sure you want to proceed?|frameless|600x600px]]
* Ask the generous folks on Discord if they've used the plugin and trust it. You can also follow the link from the Plugins Manager description to the plugin page on GitHub, like this one:
[[File:Plover dict commands-repo.png|alt=plover_dict_commands repo on github|frameless|807x807px]]
* If you're happy to accept the risk, choose "Yes" to install the plugin. You should see a dialog like this:
[[File:Dialog after install plugin.png|alt=dialog after install plugin|frameless|800x800px]]
* After installing, click "Restart":
[[File:Restart button after install plugin.png|alt=Restart button after install plugin|frameless|500x500px]]
* For Plugins that are considered "Extensions", you may need to take some extra steps. If you're not sure if it's an extension, follow the steps anyway. In Plover, go to "Configure":
[[File:Configure-location.png|alt=configure location in the top bar of the plover GUI|frameless|800x800px]]
* Click on the Plugins tab. If the plugin is listed, check the box to Enable it:
[[File:Configure-plugins-menu.png|frameless|800x800px]]<br clear=all>
Now the plugin should work. If not, ask the lovely folk on Discord for help.
For the example above, I installed the <code>plover-dict-commands</code> plugin. Now I will show testing that the plugin works by adding a dictionary entry to toggle off the <code>di-briefs.json</code> dictionary.
* Open the "Add Translation" window (either from Plover or use the brief if you have one). Add strokes like <code>T*EFT</code> and a translation like <code>{PLOVER:TOGGLE_DICT:-di-briefs.json}</code>:
[[File:Add translation GUI plover.png|alt=add translation GUI plover|frameless|700x700px]]
* Here you can see my list of enabled dictionaries:
[[File:Enabled dictionaries in GUI.png|alt=enabled dictionaries in GUI|frameless|800x800px]]
* Then I press <code>T*EFT</code> and it turns off the <code>di-briefs.json</code> dictionary:
[[File:Plover GUI list of dictionaries after toggling di-briefs off.png|frameless|800x800px]]
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository.
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>.
#* Copy this to your clipboard.
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git].
#* You may need to restart after installing git.
# Verify git is working.
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS).
#* Type <code>git</code> and press enter.
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app.
# Select <kbd><samp><code>Open file location</code></samp></kbd>.
# In the folder, hold down the Shift key and right click.
# Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>.
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins (For Users) ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins (For Developers) ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
e14f1a5b05dc957a815532f9a06120f7308edff9
User talk:LyndonBurbach24
3
1486
2145
2024-06-16T12:00:55Z
Neu neutral
941
👋🏼
wikitext
text/x-wiki
== 👋🏼 ==
b6f8aa80ff205d6ffa15bf59b8f4bffe007f4062
2146
2145
2024-06-16T12:02:11Z
Neu neutral
941
Neu neutral moved page [[User:LyndonBurbach24]] to [[User talk:LyndonBurbach24]]: Misspelled title
wikitext
text/x-wiki
== 👋🏼 ==
b6f8aa80ff205d6ffa15bf59b8f4bffe007f4062
FAQ
0
15
2148
1698
2024-06-17T03:49:47Z
Aerick
9
/* How fast can stenographers write? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Fastest typists
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|370 WPM
|}
Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen).
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people.
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only.
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
2103d73bd65c546e6bce1f2823369e5fd81d50bf
2165
2148
2024-06-19T02:24:55Z
Aerick
9
add question about dictionaries
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Fastest typists
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|370 WPM
|}
Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen).
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people.
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only.
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
=== Why does steno use dictionaries? ===
See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]]
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
8d294fa3cbcfacd16a58ea22855068ebaedd07b4
2166
2165
2024-06-19T02:27:49Z
Aerick
9
add fingerspelling question
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Fastest typists
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|370 WPM
|}
Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen).
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people.
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only.
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
=== Why does steno use dictionaries? ===
See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]]
=== How do I write a word that's not in my dictionary? ===
You can use fingerspelling—a letter-by-letter spelling technique. If you use this word often enough, you should add it to your dictionary after.
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
bb09686d9425cd4f54778ddaa87968b5997a1e09
Invoke Plover from the command line
0
49
2149
2123
2024-06-17T03:55:17Z
Aerick
9
wikitext
text/x-wiki
__TOC__
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph
== Linux (AppImage) ==
# Navigate to the folder containing the AppImage
# Execute the command in the command-line (note that the filename depends on the version):
./plover.AppImage -s plover_plugins install plover-stenograph
03c1b6a299a835f180119bed463f3f74eaf06da8
Steno layouts and supported languages
0
19
2151
153
2024-06-17T04:07:46Z
Aerick
9
added caveat for user202729's Vietnamese system
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Languages ==
* English:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]]
** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]]
* Chinese, Mandarin (國語 / 普通话):
** [[Steno Layouts and Supported Languages#Yawei|Yawei]]
** [[Steno Layouts and Supported Languages#EXun|EXun]]
** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]]
* Chinese, Cantonese (粵語):
** [[Steno Layouts and Supported Languages#SanSan|SanSan]]
** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]]
* Czech / Čeština:
** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]]
* Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Dutch / Nederlands:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
* Finnish / Suomi:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* French / Français:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
* German / Deutsch:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]]
* Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Italian / Italiano:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
* Japanese / 日本語:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]]
** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]]
** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]]
** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]]
* Korean / 한국어:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Korean CAS|CAS]]
** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]]
* Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Russian / Русский:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Spanish / Español:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
* Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries]
|[[Learning Stenography|Learning Resources]]
|-
|🟢 '''Lapwing'''
|[https://github.com/aerickt Aerick]
|English
|Phonetic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries]
|[https://lapwing.aerick.ca/ Learning Resources]
|-
|🟡 '''Cocoa'''
|[https://github.com/Kaoffie Kaoffie]
|English
|Phonetic
|Built-in
|
|
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|[https://github.com/morinted/la_tao_dictionary 4.2k entries]
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|[https://github.com/Vermoot Vermoot]
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary]
|[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary]
|
|-
|🟢 '''Stanley's'''
|[https://github.com/stanographer Stanley Sakai]
|Spanish
|Phonetic
|Built-in
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries]
|
|-
|🟢 '''EO Variant'''
|[https://github.com/roskoff Eliseo Ocampos]
|Spanish
|Phonetic
|[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant]
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.
[https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview]
[https://www.facebook.com/stenocap Facebook Page]
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries]
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish)
|-
|🟢 '''Aerick's'''
|[https://github.com/aerickt Aerick]
|Vietnamese
|Orthographic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries]
|[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources]
|-
|🟠 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|[https://github.com/user202729/plover_vi <code>plover-vi</code>]
|
|Complete system with in built phrasing, but no longer working or maintained.
|-
|🟡 '''Hindi Devanagari'''
|[https://github.com/winstond/hind_plover_dictionary winston]
|Hindi
|Phonetic
|N/A
|[https://github.com/winstond/hind_plover_dictionary 1,404 entries]
|[https://github.com/winstond/hind_plover_dictionary Home Page]
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<code>[https://github.com/percidae/plover_german plover-german]</code>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|[https://github.com/mkrnr Martin Körner]
|German
|Phonetic
|[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>]
|219k entries
|[https://github.com/mkrnr/regenpfeifer Dictionary generator]
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|[https://github.com/YAMEROOOO YAMERO]
|German
|Orthographic
|[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype]
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)
Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|[https://github.com/Willem3141 Willem Sonke]
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>]
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Danish
|Phonetic
|Built-in
|[https://github.com/SeaLiteral/hjejleOrdbog 5k entries]
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>]
|
|[https://www.stenolab.it/ Stenolab]
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|[https://github.com/nvdaes Noelia Ruiz Martínez]
|Spanish
|Phonetic
|[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>]
|[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries]
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>]
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|[https://github.com/Jade-GG Jade Geels]
|Dutch
|Phonetic
|[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>]
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|[https://github.com/Willem3141 Willem Sonke]
|Dutch
|Phonetic
|<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>]
|[https://github.com/azizyemloul/plover-france-dict 690k+ entries]
|[https://github.com/azizyemloul/plover-france-dict GitHub]
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas]
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|[https://github.com/morinted/plover_palantype <code>plover-palantype</code>]
|21k entries
|[http://www.openstenoproject.org/palantype/ Learn Palantype]
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code>
|87k entries
|[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory]
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>]
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|[https://palantype.com/ Tutorial]
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>]
|15k entries
|[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook]
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia]
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>]
|[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries]
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|[https://github.com/sammdot Sammi de Guzman]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|[https://steno.sammdot.ca/explainers Steno Explainers]
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|[https://github.com/Quisette Quisette C]
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>]
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C")
|
|[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation]
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S")
|
|
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda
Pure Kana
|[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>]
|365k entries
|[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table]
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable
Pure Kana
|<code>plover-japanese-stenoword</code>
|2.6k entries
|[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table]
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda
Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|[https://github.com/Kaoffie Kaoffie]
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>]
|
|[https://www.velotype.com/en/homepage-eng/ Official website]
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code>
|
|[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial]
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet]
|
|[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial]
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|[https://github.com/chambln Gregory Chamberlain]
|English
|Phonetic
|[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>]
|15k entries
|[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki]
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|[https://github.com/lambdadog Ashlynn Anderson]
|Czech
|Phonetic
|[https://github.com/lambdadog/plover_czech <code>plover-czech</code>]
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Finnish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Spanish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
[[Category:Stenography]]
d57871c59ba5570c63657b7d8f213090fa896668
Beginner's Guide
0
4
2155
1690
2024-06-18T14:03:55Z
Aerick
9
remove neu edits
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|None|Thumb|Demonstration of the arpeggiate function.]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|none|thumb]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Rolling your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
<!--T:33-->
* [https://plover.wiki/index.php/Supported_Hardware#Keytoppers Keytoppers]
* [https://plover.wiki/index.php/Supported_Hardware#keycaps Keycaps]
<!--T:34-->
You can also use [https://plover.wiki/index.php/Supported_Hardware#NKRO_keyboards_with_an_ortholinear_layout a keyboard with an ortholinear layout].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor’s guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
<!--T:44-->
<span id="keyboard"></span>
=== Keyboard ===
<!--T:45-->
By default, Plover will use your keyboard as its input device.
<!--T:46-->
# Run Plover.
# Click the Output: '''<kbd><samp>Enabled</samp></kbd>''' radio button.
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open Plover’s main window and, and select Plover’s output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
<!--T:50-->
This can be somewhat circumvented using a key input delay, as shown below:<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Key Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]]
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:64-->
<span id="stenography-machine"></span>
=== Stenography machine === <!--T:65-->
<!--T:66-->
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
<!--T:67-->
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
<!--T:68-->
See [[Supported_Hardware#Supported_protocols| Supported protocols]] for more information.
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
05a21a7f084bb9b19c566480b49a4444a65a1a17
2158
2155
2024-06-18T23:48:03Z
Aerick
9
/* Download and Install Plover */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable.
[[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]]
You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine.
* [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]].
* [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:78-->
[[Category:Plover]]
</translate>
248f5552231fb3cff9e2cd990a53376df1018ea9
2159
2158
2024-06-19T00:34:07Z
Aerick
9
add section on personalizing dictionaries.
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable.
[[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]]
You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine.
* [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]].
* [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
67589e6e8cbf2cc70b61f6ab131c701ca3b9d253
File:Mech keyboard with top row flipped.png
6
1490
2156
2024-06-18T23:19:17Z
Aerick
9
wikitext
text/x-wiki
Mech keyboard with top row flipped
a9c939b7272c8d5099157d0b2a0fdaec098b64e3
File:Steno keys on QWERTY keyboard by Jen.png
6
1491
2157
2024-06-18T23:40:11Z
Aerick
9
wikitext
text/x-wiki
Steno keys on QWERTY keyboard by Jen
55b0623947624a3507116bc7479bbe5503a1421c
Personalizing your dictionary
0
1492
2160
2024-06-19T01:51:59Z
Aerick
9
Created page with "The dictionary's purpose English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers. For languages with much more r..."
wikitext
text/x-wiki
The dictionary's purpose
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
The rationale behind different dictionaries
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
Different dictionaries within the same theory
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke APD does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking APD instead of APT when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word used in a particular niche circle. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
c25b6c216f0253efcc881a8fd6bac1c2d3b9e857
2161
2160
2024-06-19T01:52:40Z
Aerick
9
headers
wikitext
text/x-wiki
== The dictionary's purpose ==
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
== The rationale behind different dictionaries ==
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
== Different dictionaries within the same theory ==
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke APD does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking APD instead of APT when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word used in a particular niche circle. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
69035645db1c95554bcc469c218a38d9b21b303c
2162
2161
2024-06-19T01:54:41Z
Aerick
9
/* Different dictionaries within the same theory */
wikitext
text/x-wiki
== The dictionary's purpose ==
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
== The rationale behind different dictionaries ==
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
== Different dictionaries within the same theory ==
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
6c4e3bf202cd582380984463f68f0c0e155b70ef
2163
2162
2024-06-19T02:23:02Z
Aerick
9
wikitext
text/x-wiki
== The dictionary's purpose ==
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
== The rationale behind different dictionaries ==
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
== Different dictionaries within the same theory ==
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
[[Category:Plover]]
afbbac44a86d36d147bf10245396c1f1fffb8c47
2164
2163
2024-06-19T02:24:17Z
Aerick
9
wikitext
text/x-wiki
== The dictionary's purpose ==
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps English words to steno. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
== The rationale behind different dictionaries ==
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
== Different dictionaries within the same theory ==
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
[[Category:Plover]]
__FORCETOC__
d3badba4a2e59ae7ccb86e8a80a6ec172732ab58
Talk:Supported hardware
1
1493
2167
2024-06-19T02:38:37Z
Aerick
9
/* Professional machines */ new section
wikitext
text/x-wiki
== Professional machines ==
Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once.
7ac50dc3a3f44e2eb2863434c78096a13193d7f7
2168
2167
2024-06-19T02:40:56Z
Aerick
9
/* NKRO keyboards */ new section
wikitext
text/x-wiki
== Professional machines ==
Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once.
== NKRO keyboards ==
Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"?
912671266754d9956ec42796f7c9040c4a7b2af0
Shrimple
0
1494
2173
2024-06-20T12:27:37Z
.kevinlel
1636
🦐
wikitext
text/x-wiki
'''Shrimple''' is a method of "multi-character [[fingerspelling]]" with the entire keyboard rather than just the left hand and vowels. It uses an orthographic theory similar to the [[Velotype]], but on the typical [[WSI]] stenography layout. Shrimple can be toggled on and off with strokes, or instead used with a dedicated key.
You can find its dictionary at https://github.com/StenoHarri/steno-Python-dictionaries/blob/main/Shrimple-theory.py. As it is a Python dictionary, you will need the plover-python-dictionary [[plugin]] for it to work.
== Example ==
h
=== With an entry stroke ===
=== With a dedicated key ===
== Editing the dictionary ==
5b72b80ea7a77a8a4dcba09f7685e011c234dd0a
2174
2173
2024-06-20T12:30:51Z
.kevinlel
1636
fixing links
wikitext
text/x-wiki
'''Shrimple''' is a method of "multi-character [[fingerspelling]]" with the entire keyboard rather than just the left hand and vowels. It uses an orthographic theory similar to the [[Steno Layouts and Supported Languages#Velotype|Velotype]], but on the typical [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Ireland]] stenography layout. Shrimple can be toggled on and off with strokes, or instead used with a dedicated key.
You can find its dictionary at https://github.com/StenoHarri/steno-Python-dictionaries/blob/main/Shrimple-theory.py. As it is a Python dictionary, you will need the plover-python-dictionary [[Plugins|plugin]] for it to work.
== Example ==
h
=== With an entry stroke ===
=== With a dedicated key ===
== Editing the dictionary ==
13c05e460fad0f439dc68a33e904197b3e60889c
User:.kevinlel
2
1495
2175
2024-06-20T12:38:30Z
.kevinlel
1636
Created page with "h"
wikitext
text/x-wiki
h
27d5482eebd075de44389774fce28c69f45c8a75
File:Auto-reconnect-test.png
6
1496
2177
2024-06-23T15:21:19Z
Aerick
9
wikitext
text/x-wiki
Refresh and drop down menu highlighted to test if auto-reconnect-machine plugin will work.
a09876ba8cf9b18a6fc36b69b3043cdbcc97e022
File:Plover-auto-reconnect-plugin-configuration.png
6
1497
2178
2024-06-23T15:32:35Z
Aerick
9
wikitext
text/x-wiki
Enabling the plover-auto-reconnect-machine plugin
b67dc8052ceb57e3c25ed29f3bb8f098847767fb
File:State-disconnected.svg
6
1498
2179
2024-06-23T15:37:19Z
Aerick
9
wikitext
text/x-wiki
Disconnected plover state.
58cf012e5337ab8382affa4a63c9c9b01fd29c1b
Auto reconnect
0
1499
2180
2024-06-23T15:40:30Z
Aerick
9
Created page with "== Background == For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work. This can be checked by going to <code>Configure → Machine</code> and follow the instruc..."
wikitext
text/x-wiki
== Background ==
For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work.
This can be checked by going to <code>Configure → Machine</code> and follow the instructions below:
# Open the <code>Port</code> drop down menu.
# Take note of the serial port that your machine is using.
# Unplug your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Plug in your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Open the <code>Port</code> drop down menu.
# Check if the new serial port is the same.
#* If they are the same, you can proceed with this page to set up auto reconnect.
#* If they are different, auto reconnect may not work.
[[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]]
== Installing the <code>plover-auto-reconnect-machine</code> plugin ==
# Open the plugins manager.
# Find <code>plover-auto-reconnect-machine</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]].
== Setting up the <code>plover-auto-reconnect-machine</code> plugin ==
# In Plover's main window, go to <code>Configure → Plugins</code>.
# Check the box next to <code>plover-auto-reconnect-machine</code>.
# Press <code>Apply</code> and then <code>OK</code>.
[[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]]
== Verify it works ==
# Make sure your machine is set up correctly.
# Write some words to test your configuration.
# Unplug your writer.
# Plug it back in and wait a few seconds.
# Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]]
# Write some words to see if it works.
d7f9145bd42b692351f455403d31ea30f2cf0be5
2181
2180
2024-06-23T15:40:52Z
Aerick
9
wikitext
text/x-wiki
== Background ==
For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work.
This can be checked by going to <code>Configure → Machine</code> and follow the instructions below:
# Open the <code>Port</code> drop down menu.
# Take note of the serial port that your machine is using.
# Unplug your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Plug in your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Open the <code>Port</code> drop down menu.
# Check if the new serial port is the same.
#* If they are the same, you can proceed with this page to set up auto reconnect.
#* If they are different, auto reconnect may not work.
[[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]]
== Installing the <code>plover-auto-reconnect-machine</code> plugin ==
# Open the plugins manager.
# Find <code>plover-auto-reconnect-machine</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]].
== Setting up the <code>plover-auto-reconnect-machine</code> plugin ==
# In Plover's main window, go to <code>Configure → Plugins</code>.
# Check the box next to <code>plover-auto-reconnect-machine</code>.
# Press <code>Apply</code> and then <code>OK</code>.
[[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]]
== Verify it works ==
# Make sure your machine is set up correctly.
# Write some words to test your configuration.
# Unplug your writer.
# Plug it back in and wait a few seconds.
# Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]]
# Write some words to see if it works.
[[Category:Plover]]
f63131459b9c89d4a69c18edab6da344e1dbfd07
2182
2181
2024-06-23T15:41:03Z
Aerick
9
Aerick moved page [[Autoreconnect]] to [[Auto reconnect]] without leaving a redirect
wikitext
text/x-wiki
== Background ==
For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work.
This can be checked by going to <code>Configure → Machine</code> and follow the instructions below:
# Open the <code>Port</code> drop down menu.
# Take note of the serial port that your machine is using.
# Unplug your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Plug in your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Open the <code>Port</code> drop down menu.
# Check if the new serial port is the same.
#* If they are the same, you can proceed with this page to set up auto reconnect.
#* If they are different, auto reconnect may not work.
[[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]]
== Installing the <code>plover-auto-reconnect-machine</code> plugin ==
# Open the plugins manager.
# Find <code>plover-auto-reconnect-machine</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]].
== Setting up the <code>plover-auto-reconnect-machine</code> plugin ==
# In Plover's main window, go to <code>Configure → Plugins</code>.
# Check the box next to <code>plover-auto-reconnect-machine</code>.
# Press <code>Apply</code> and then <code>OK</code>.
[[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]]
== Verify it works ==
# Make sure your machine is set up correctly.
# Write some words to test your configuration.
# Unplug your writer.
# Plug it back in and wait a few seconds.
# Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]]
# Write some words to see if it works.
[[Category:Plover]]
f63131459b9c89d4a69c18edab6da344e1dbfd07
2194
2182
2024-06-23T18:18:57Z
Aerick
9
/* Installing the plover-auto-reconnect-machine plugin */
wikitext
text/x-wiki
== Background ==
For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically. However, if the serial port changes between plugs, please note that this plugin will not work.
This can be checked by going to <code>Configure → Machine</code> and follow the instructions below:
# Open the <code>Port</code> drop down menu.
# Take note of the serial port that your machine is using.
# Unplug your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Plug in your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Open the <code>Port</code> drop down menu.
# Check if the new serial port is the same.
#* If they are the same, you can proceed with this page to set up auto reconnect.
#* If they are different, auto reconnect may not work.
[[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]]
== Plugin installation ==
# Open the plugins manager.
# Find <code>plover-auto-reconnect-machine</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]].
== Plugin setup ==
# In Plover's main window, go to <code>Configure → Plugins</code>.
# Check the box next to <code>plover-auto-reconnect-machine</code>.
# Press <code>Apply</code> and then <code>OK</code>.
[[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]]
== Verify it works ==
# Make sure your machine is set up correctly.
# Write some words to test your configuration.
# Unplug your writer.
# Plug it back in and wait a few seconds.
# Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]]
# Write some words to see if it works.
[[Category:Plover]]
7cdcc17c1c8aec75e33105cf32e44d4ee22018fe
Supported hardware
0
10
2183
2176
2024-06-23T15:41:47Z
Aerick
9
/* Autoreconnect */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock
| $100
|}<span id="diy-machines"></span>
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Setting Up a Hobbyist Machine With Plover ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. However, the main steno protocols can be a little finicky to set up. Follow one of the two methods below or the video tutorial.
<youtube>2tp_hSVCKN8</youtube>
=== Main method ===
This method involves determining the serial port for Plover to listen to.
# Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
=== Trial and error method ===
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
=== Serial protocol limitations ===
If you sleep and wake up your computer, or you unplug and replug your machine, you can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page.
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
eb8672d5f24a841211f21d81daaf41a6568e5064
2196
2183
2024-06-23T19:50:56Z
Aerick
9
/* Move set up to new page */
wikitext
text/x-wiki
This page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine designed for use with Plover]]
# [[Supported Hardware#Stenotype Machines|A stenotype machine]]
# [[Supported Hardware#Keyboards|A standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|A video game controller]]
= Dedicated machines designed for use with Plover =
Various steno enthusiasts are making and selling machines designed for use with Plover.<span id="commercially-available-hobbyist-machines"></span>
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines. Instead, most options opt for keyboard switches, such as Cherry-style (Gateron Clear@35g), Kailh Choc (gChoc at 20g), or Matias (Red at 40g).
<!-- Let's try to keep it alphabetical -->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
! Price (USD)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (as of June 2024): In stock
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (as of June 2024): In stock
| $170
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both Steno and Qwerty. More switches enable normal typing in qwerty mode. You can also do things like shift+click in steno mode.<br><br>'''Stock status''' (as of June 2024): In stock
| $125
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (as of January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
| $138
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink keyswitches and can be screwed onto a tripod.<br><br>'''Stock status''' (as of June 2024): In stock
| $90 (+ $10 shipping)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (as of January 2024): In stock
| $140 (stock)<br>$180 (silent)
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| [https://www.stenokeyboards.com StenoKeyboards]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g). Embedded steno compatible.<br><br>'''Stock status''' (as of June 2024): In stock
| $100
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
| (same instructions as the 400 SRT)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= Keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.<span id="what-if-my-keyboard-is-not-capable-of-nkro"></span>
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
== Known supported keyboards ==
You can search for NKRO keyboards compatible with Plover by including “NKRO” or “anti-ghosting” in your search query. Make sure to check reviews before purchasing as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!-- Is this table even useful? I'm not sure if it is possible to find some of the cheap keyboards anymore (they always go out of production or change brand names etc). -->
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! Comments
! Price
|-
| Anne Pro II
| Obinslabs
| NKRO over USB; 6KRO over bluetooth; Works on Mac
| $20-100
|-
| Aukey KM-G9
| Aukey
| NKRO over USB; May not work on Mac
| $35-50
|-
| I-500 Victop (compact: 87 keys)
| Eastern times tech
| NKRO over USB
| [https://www.amazon.co.uk/Water-Resistant-VicTop-Mechanical-Waterproof-Anti-ghosting/dp/B01DBYNVSY/ 27 GBP]
|-
| DareU DK87 (red switch)
| DareU
| NKRO over USB (Tested on Linux), however some keys may be stuck after released. Discontinued model. There is a [http://www.dareu.com/?m=home&c=View&a=index&aid=169 similar model], they may have the glitch mentioned above or not.
| < $30
|-
| TOMOKO (87 key Mechanical Keyboard)
| TOMOKO
| NKRO over USB (Works on Mac)
| [https://www.amazon.com/TOMOKO-Water-Resistant-Mechanical-Keyboard-Non-Conflicting/dp/B01DBJTZU2/ $30]
|-
| K552
| Redragon
| NKRO over USB
| [https://www.amazon.com/Redragon-KUMARA-Backlit-Mechanical-Keyboard/dp/B016MAK38U $35]
|-
| X51 (Gaming Mechanical Keyboard 87/104)
| Metoo
| NKRO over USB
| [https://www.aliexpress.com/item/Metoo-Gaming-Mechanical-Keyboard-87-104-Anti-ghosting-Luminous-Blue-Red-Black-Switch-Backlit-LED-wired/32782819448.html $40]
|-
| ZM-K600S
| Zalman
| NKRO over USB
| [https://www.amazon.com/Zalman-Unlimited-Multi-Key-keyboard-ZM-K600S/dp/B0196J3IPE $40]
|-
| K582
| Redragon
| NKRO over USB (Works on Mac. NB: Hitting Fn+WIN removes NKRO)
| [https://www.amazon.com/Redragon-Mechanical-Keyboard-Keys-Linear-Quiet-Red/dp/B07KCRTN9Q/ $50]
|-
| K66
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-K66-Mechanical-Gaming-Keyboard/dp/B072LTTNVS/ $55]
|-
| K63
| Corsair
| NKRO over USB (Works on Mac!)
| [https://www.amazon.com/Corsair-CH-9115020-NACORSAIR-Compact-Mechanical-Keyboard/dp/B06XC1WNPT $80]
|-
| K68
| Corsair
| NKRO over USB
| $160-200
|-
| K95
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-PLATINUM-Mechanical-Gaming-Keyboard/dp/B01MU3R9VM ~$200]
|-
| KG901
| Marvo
| NKRO over USB
| $30-70 AUD
|-
| STRAFE
| Corsair
| NKRO over USB
| [https://www.amazon.com/CORSAIR-STRAFE-Mechanical-Gaming-Keyboard/dp/B012B6X7MI/ $80]
|-
| CM Storm Quickfire TK
| Cooler Master
| NKRO over USB (Doesn’t work on Mac)
| [https://www.amazon.com/CM-Storm-QuickFire-TK-Mechanical/dp/B00A378L4C/ $85]
|-
| Vengeance K65
| Corsair
| NKRO over USB
| [http://www.corsair.com/en/gaming-peripherals/gaming-keyboards/vengeance-k65-compact-mechanical-gaming-keyboard.html $90]
|-
| C413 Carbon
| Logitech
| 26KRO
| [https://www.logitechg.com/en-us/products/gaming-keyboards/g413-mechanical-gaming-keyboard.920-008300.html $90]
|-
| Francium Pro
| Deck
| NKRO over USB when in “lightning” mode (Fn + F10). Full NKRO works on Windows and Linux, but is rumored NOT to work on Macs (you’d be stuck with 6KRO).
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=690 $94]
|-
| Noppoo Choc
| Noppoo
| NKRO over USB (works on Mac without adapters)
| [https://www.amazon.com/Noppoo-84-Technology-Mechanical-Keyboard/dp/B0091Q34EI/ref=sr_1_1?s=pc&ie=UTF8&qid=1458020924&sr=1-1-spons&keywords=noppoo+choc+mini&psc=1 $95]
|-
| Razer BlackWidow V3 Tenkeyless
| Razer
| 14KRO over USB when in “gaming” mode (Fn + F10). Older BlackWidow Tournament Edition 2014 tested.
| [https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V3-Tenkeyless/RZ03-03490200-R3U1 $100]
|-
| Apex M750 TKL
| SteelSeries
| NKRO over USB (Works on Mac, but for some reason if you install the SteelSeries Engine it stops working)
| [https://www.amazon.com/dp/B076XDTLBB $120]
|-
| G710+
| Logitech
| NKRO over USB
| [https://gaming.logitech.com/en-us/product/g710plus-mechanical-gaming-keyboard $130]
|-
| Majestouch-2
| Filco
| NKRO over USB
| [https://amzn.to/oLy2xQ $167]
|-
| Das Keyboard 4 Ultimate
| Das Keyboard
| NKRO over USB requires key sequence to enable. See fine print on underside of keyboard
| [https://shop.daskeyboard.com/products/das-keyboard-4-ultimate/ $169]
|-
| Apex M800
| SteelSeries
| NKRO over USB
| [https://steelseries.com/gaming-keyboards/apex-m800 $199]
|-
| Ergo Pro
| Matias
| NKRO over USB
| [https://matias.ca/ergopro/pc/ $200]
|-
| Ultimate Hacking Keyboard
| Ultimate Gadget Labs
| NKRO over USB
| [https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard $250]
|-
| Ergodox
| Ergodox
| NKRO over USB
| [https://falba.tech/customize-your-keyboard/customize-your-ergodox/ Parts €160.00 - Assembled €247.00]
|-
| Ergodox EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com EZ Only $270 - All Upgrades $354+]
|-
| Planck EZ (swappable switches)
| ZSA Technology Labs, Inc.
| NKRO over USB
| [https://ergodox-ez.com/pages/planck Planck only $180 - W/LED Backlighting $195]
|-
| Model01
| Keyboard.io
| NKRO over USB
| [https://shop.keyboard.io $329]
|-
| Vortex Race 3
| Vortex Keyboard
| NKRO over USB (Only 6KRO on Mac. Untested on Linux)
| [https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=3917 $139]
|}<span id="which-type-of-key-switch-should-i-choose"></span>
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Laptops with NKRO ==
If you want to always have steno on the go, you might consider finding a notebook with NKRO. Note that not all these machines are equivalent in terms of actuation force or key shape. You might find, for example, that chiclet keys don’t feel as good as the Alienware’s classic keyboard style. It’s always best to try laptop keyboards at a local store, if possible.
{| class="wikitable sortable"
|-
! Model
! Screen Size
! Manufacturer
! Rollover
! Price (USD)
! Weight
|-
| [https://www.dell.com/en-us/shop/dell-laptops/sc/laptops/alienware-laptops Alienware R3/R4]
| 13”, 15”, 17”
| Dell
| n-key
| '''$1000''' to $3000
| 5.8 to 9.8 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-GL553VD/ GL553]
| 15”
| Asus
| 30-key
| $1200
| 5.5 lbs
|-
| [https://www.razer.com/ca-en/gaming-laptops/razer-blade-stealth Razer Blade Stealth 8th Gen]
| 13”
| Razer
| 14-key
| $1200+
| '''2.98 lbs'''
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GM501/ Zephyrus GM501]
| 15”
| Asus
| 30-key
| $1500 to $2200
| 5.5lbs
|-
| [https://www8.hp.com/us/en/campaigns/omenxlaptop/overview.html Omen X]
| 17”
| HP
| n-key*
| $1800
| 10.7 lbs
|-
| [https://www.gigabyte.com/Laptop/P57X-v7 P57X]
| 17”
| Gigabyte
| 30-key
| $1800
| 6.6 + 2.2 (power adaptor) lbs
|-
| [https://www.asus.com/ca-en/ROG-Republic-Of-Gamers/ROG-GL502VT/ GL502]
| 15”
| Asus
| 30-key
| $1900
| 4.9 lbs
|-
| [https://www.gigabyte.com/us/Laptop/AERO-15--i7-8750H Aero 15/15x]
| 15”
| Gigabyte
| 80-key*
| $2000 to $2900
| 4.6 lbs
|-
| [https://www3.lenovo.com/us/en/laptops/ideapad/lenovo-legion-y-series-laptops/Legion-Y920/p/88GMY900877 Legion Y920]
| 17”
| Lenovo
| 100-key*
| $2200
| 10.1 lbs
|-
| [https://www.asus.com/ca-en/Laptops/ROG-ZEPHYRUS-GX501/ Zephyrus GX501]
| 15”
| Asus
| 30-key
| $2500
| 4.85lbs
|-
| Aorus [https://www.aorus.com/product-detail.php?p=744 X5 v8] and [https://www.aorus.com/product-detail.php?p=745 X7 v8]
| 15”, 17”
| Aorus
| 80-key*
| $2600, $3000
| 5.51 lbs, 7.05 lbs
|-
| [https://us-store.acer.com/predator-triton-700-gaming-laptop-pt715-51-732q Predator Triton 700]
| 15”
| Acer
| n-key (clicky keys)
| $3000
| 5.3 lbs
|}
<code>*: Untested for use with Plover</code><span id="laptops-that-dont-actually-work-with-plover"></span>
== Laptops that don’t actually work with Plover ==
After testing some of the laptops on the list above, they were found to not live up to their claims.
{| class="wikitable"
|-
! Model
! Manufacturer
! Claimed Rollover
! Findings
|-
| HP Omen [https://store.hp.com/us/en/pdp/omen-by-hp---15-ce051nr 15] and [https://store.hp.com/us/en/pdp/omen-by-hp---17-an053nr 17]
| HP
| “26-key rollover anti-ghosting”
| Combination “YUHJ” on Qwerty only produces 3 letters
|-
| [https://us.msi.com/Laptop/GF62-7th-Gen-GEFORCE-GTX-1050TI.html GF62] and [https://us.msi.com/Laptop/GP72-Leopard-Pro-6th-Gen-GTX-960M GP72]
| MSI
| “anti-ghosting for up to 45 keys”
| 99% of chords were OK, certain combinations wouldn’t work – e.g. QWEAS blocked R. Keyboard also responded abnormally slow when writing chords.
|}
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
557a386c9d4bcc54107d3acb8a95fc0689d8e039
2209
2196
2024-06-23T20:44:15Z
Fieldchicken
1656
slight clean-up of hardware page
wikitext
text/x-wiki
= What steno keyboard should I get? =
Generally, any keyboard which is in stock!
If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]]
# [[Supported Hardware#Stenotype Machines|Stenotype machine]]
# [[Supported Hardware#Keyboards|Standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|Video game controller]]
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines.
<!-- Group by brand (alphabetical), out of stock at bottom
-->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [https://plover.wiki/index.php/How_to_setup_and_use_Plover_with_a_Stentura_400SRT Setup Instructions]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Stentura Protege Setup and Usage Instructions|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= NKRO keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
=== What’s NKRO? ===
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
=== How do I know if my keyboard has NKRO? ===
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
=== What if my keyboard is not capable of NKRO? ===
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
cbaab35554949a83fb50a980aba939cda8ac703a
2210
2209
2024-06-23T20:46:48Z
Aerick
9
/* Known supported stenotypes */
wikitext
text/x-wiki
= What steno keyboard should I get? =
Generally, any keyboard which is in stock!
If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]]
# [[Supported Hardware#Stenotype Machines|Stenotype machine]]
# [[Supported Hardware#Keyboards|Standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|Video game controller]]
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines.
<!-- Group by brand (alphabetical), out of stock at bottom
-->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
<span id="stenotype-machines"></span>
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}<span id="keyboards"></span>
= NKRO keyboards =
If you don’t have a steno machine, you can use a keyboard that supports N-Key Rollover (NKRO).
=== What’s NKRO? ===
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
=== How do I know if my keyboard has NKRO? ===
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
=== What if my keyboard is not capable of NKRO? ===
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords. Have a look at the [[Beginner's Guide|Beginner’s Guide]] for more information.
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
c43b1a6f47e1fba7dbe0d6e89a79418a94f55b73
2212
2210
2024-06-23T21:18:05Z
Aerick
9
/* NKRO keyboards */
wikitext
text/x-wiki
= What steno keyboard should I get? =
Generally, any keyboard which is in stock!
If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]]
# [[Supported Hardware#Stenotype Machines|Stenotype machine]]
# [[Supported Hardware#Keyboards|Standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|Video game controller]]
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines.
<!-- Group by brand (alphabetical), out of stock at bottom
-->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= NKRO keyboards =
See: [[Using an NKRO keyboard with Plover]]
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price.
See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
a70407344c40efd4faf2ffc5bfc18a73595308de
2213
2212
2024-06-23T21:19:05Z
Aerick
9
/* NKRO keyboards */
wikitext
text/x-wiki
= What steno keyboard should I get? =
Generally, any keyboard which is in stock!
If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]]
# [[Supported Hardware#Stenotype Machines|Stenotype machine]]
# [[Supported Hardware#Keyboards|Standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|Video game controller]]
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines.
<!-- Group by brand (alphabetical), out of stock at bottom
-->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
See: [[Using a standard keyboard with Plover|Using an standard keyboard with Plover]]
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price.
See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
9f34875791a4c92fae054be3ed916e16d2e1be0f
2214
2213
2024-06-23T21:19:14Z
Aerick
9
/* Standard keyboards */
wikitext
text/x-wiki
= What steno keyboard should I get? =
Generally, any keyboard which is in stock!
If you need to use steno on a device that you can't install Plover on, any keyboard which takes [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice. Other than that, this page lists the machines known to work with Plover. The main 4 choices are:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Dedicated hobbyist machine]]
# [[Supported Hardware#Stenotype Machines|Stenotype machine]]
# [[Supported Hardware#Keyboards|Standard computer keyboard]]
# [[Supported Hardware#Video Game Controller|Video game controller]]
== Commercially Available Hobbyist Machines ==
Machines that are or will be available for purchase. As of right now, there are no hobbyist lever machines.
<!-- Group by brand (alphabetical), out of stock at bottom
-->
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up Gemini PR with Plover]].
= Stenotype Machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
See: [[Using a standard keyboard with Plover]]
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price.
See: [[Setting up a video game controller with Plover]] <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
[[Category:Plover]]
b592c3215a9e4ef744869dc2e7132571eaf49bb5
2216
2214
2024-06-23T21:40:28Z
Aerick
9
/* What steno keyboard should I get? */
wikitext
text/x-wiki
= What steno keyboard should I get? =
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock!
== Commercially available hobbyist machines ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see the page [[setting up a hobbyist writer with Plover]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
321ce8dbcc241234ec7e75e4dad20fc58a15dfc5
2218
2216
2024-06-23T21:51:58Z
Aerick
9
/* Commercially available hobbyist machines */
wikitext
text/x-wiki
= What steno keyboard should I get? =
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock!
== Commercially available hobbyist machines ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production machines]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
8ec24f618069822762eb82c91aa3134379ba6663
2227
2218
2024-06-23T22:12:30Z
Aerick
9
/* Commercially available hobbyist machines */
wikitext
text/x-wiki
= What steno keyboard should I get? =
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist machines|commercially available hobbyist machines]]. They're all really good, and the best one is whichever is in stock!
== Commercially available hobbyist writers ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production machines]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
2cb41c4fcffe64ce0a8f4bd7dac4d68e2e2baeba
Plugins
0
45
2184
2141
2024-06-23T16:07:15Z
Aerick
9
Removed screenshots, added annotated video for plugins manager.
wikitext
text/x-wiki
Plugins can be made for Plover to extend its functionality in various ways, from the tools available in the GUI to the types of dictionaries supported. They are available starting from Plover version 4.0.
== How to Install Plugins ==
=== Via the built-in Plugins Manager (recommended) ===
# Open the main window of Plover.
#* You can also right click on the Plover icon.
# Go to <code>Tools → Plugins Manager</code>.
# Browse the available plugins and select the one you want to install.
# Select <code>Install/Update</code> to install the plugin.
# Press <code>Yes</code> to the security warning.
# Once the plugin has finished installing, close the progress window.
# Press the restart button.
# Some plugins require extra setup. See [[Plugins#Types of Plugins (For Users)|types of plugins for more detail.]]
<youtube>mQHPlGcMHEw</youtube>
<blockquote>{{Info|text=If you do not see the plugins manager, follow the instructions [https://plover.wiki/index.php/Troubleshooting_Issues#Disappearing_plugins_manager here] to bring it back.}}</blockquote>
=== Manually Installing Plugins ===
Some plugins are not yet in the registry and do in the show up in the plugins manager list. It is still possible to manually install plugins. '''Ensure you are running Plover 4.x – version 3 and below do not include plugin support.'''
==== Find the plugin on PyPI or as a git repo ====
===== Plugins on PyPI =====
[[File:2024-02-19 21-15.png|alt=plover-touchscreen-stenotype on PyPI|thumb|<code>plover-touchscreen-stenotype</code> on PyPI]]
[https://pypi.org/search/ Search for your plugin on PyPI]. If you found the plugin, take note of the name (e.g., <code>plover-touchscreen-stenotype</code>).
===== Plugins not on PyPI =====
If the plugin is not listed on PyPI follow these steps:
# Take note of the URL of the git repository.
#* It will look something like this: <nowiki>https://github.com/greenwyrt/plover2CAT</nowiki>.
#* Copy this to your clipboard.
# [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git Install git].
#* You may need to restart after installing git.
# Verify git is working.
#* Open a command line (<code>Command Prompt</code> app on Windows, <code>Terminal</code> on Linux and macOS).
#* Type <code>git</code> and press enter.
You should see something the following output:
[[File:Cmd-git-output.gif|alt=Cmd-git-output|frameless|600x600px]]
If the above command does not work, first verify you've installed git. If you are still running into an error when trying to run <code>git</code>, you may have to restart or manually add <code>git</code> to your path (particularly if you are on Windows).
==== Install the plugin ====
Installing the plugin requires accessing the Plover executable as outlined in the [[invoke Plover from the Command Line]] page. For each command listed below, replace <code>plugin-name</code> with an applicable string:
* For plugins on PyPI, this is the name of the package (e.g., <code>plover-touchscreen-stenotype</code>).
* For other plugins, this is the URL from the previous step, prefixed with <code>git+</code> (e.g., <code>git+<nowiki>https://github.com/greenwyrt/plover2CAT</nowiki></code>).
===== Linux =====
Open a terminal in the same folder as the Plover AppImage and run the following command:
<code>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install plugin-name</code>
Note that depending on the version of Plover you are using, the first part of the command may be different. Instead of typing the whole filename out, you can type <code>./plover</code> and then press Tab to autocomplete the rest.
<youtube>ftTCQNUdFN0</youtube>
===== Mac =====
Open a terminal and run:
<code>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plugin-name</code>
===== Windows =====
First open a PowerShell window by following these steps:
# Right click the Plover app.
# Select <kbd><samp><code>Open file location</code></samp></kbd>.
# In the folder, hold down the Shift key and right click.
# Select <kbd><samp><code>Open PowerShell window here</code></samp></kbd>.
Run the following command:
<code>.\plover_console.exe -s plover_plugins install plugin-name</code>
See the following video for the whole process:
<youtube>Rl2R-ucrpjs</youtube>
'''TODO: Information on how to install the plugins manager for non-developers, screenshots, point developers towards the development workflow section which has other options.'''
== Types of Plugins (For Users) ==
=== Dictionary Plugins ===
Dictionary plugins add support for other dictionary formats besides Plover’s native JSON format.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Machine Plugins ===
Machine plugins add support for new input protocols, such as the serial input from various professional stenography machines or even MIDI keyboards.
'''These plugins add new entries in the <code>Machine</code> dropdown menu in Plover's configuration.'''
=== System Plugins ===
System plugins defines new key layouts and theories. This lets Plover support stenographic layouts other than the standard American Stenotype system, such as Michela (plover-michela) or Korean CAS (plover-korean).
'''To use a system plugin, configure it under the <code>System</code> tab of Plover's [[Configuration#System_Tab|configuration]].'''
=== Command Plugins ===
Commands plugins allow Plover to run arbitrary commands in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks.
'''See the plugin's own documentation for setup details.'''
=== Macro and Meta Plugins ===
Macro and meta plugins add or modify translations in the translator, typically for transforming previously entered text. Macros have access to the entire translation and can perform transformations on the raw stroke input, whereas metas only have access to the translated output.
'''To use macro and meta plugins, see the plugin's own documentation for setting up entries.'''
=== GUI Plugins ===
GUI plugins add user-facing tools, like the built-in Suggestions and Lookup tools. GUI plugins are automatically loaded at startup, and can be accessed by clicking on its icon on the toolbar or in the <code>Tools</code> dropdown menu.
'''There is no setup required for these plugins beyond installation and restarting Plover.'''
=== Extension Plugins ===
Extension plugins can be used to execute arbitrary code.
'''To use an extension plugin, it must be enabled in the <code>Plugins</code> tab of Plover's [[Configuration#Plugins_Tab|configuration]].'''
== Plugin Development ==
Checkout the [https://plover.readthedocs.io/en/latest/plugin_dev.html Plugin Development Guide], which is the updated version of the information below. You might also find the [https://plover.readthedocs.io/en/latest/api_reference.html API reference] to be useful.
{{Out of date-section|2024-04-28T12:42:49.972649}}
== How Plugins Work ==
Plugins are generally implemented as separate Python packages that are installed into the Python environment that Plover uses. In order to support this, Plover's code uses a dynamic plugin discovery system via [https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins setuptools's entry_points configuration] to allow other packages to define themselves as certain types of plugins for Plover. After collecting the registry of plugins in the active Python environment on initialization, Plover has hooks in its code to call into each of the different types in the registry at various parts of its life cycle.
Much of Plover's built-in functionary is actually implemented via this plugin architecture in the main repository. For example, .json and .rtf dictionary support is from dictionary plugins, keyboard, Gemini PR, TX Bolt, and more input methods are all machine plugins, the English stenography layout is a system plugin, the entire UI itself is a GUI plugin, and much more.
== Types of Plugins (For Developers) ==
The following is each type of plugin available to develop in the packaged version of Plover and their relevant technical information.
Some examples are given for each type of plugin, but also check out the setup files in the [https://github.com/openstenoproject/plover main Plover repository] to find a bunch of plugins built into the release.
'''TODO: Document the base engine's hooks, or at least point to the code for them, for extension and GUI plugins'''
=== plover.command ===
Command plugins are used for executing arbitrary logic in response to a stroke. The logic can interact with the stenography engine itself but can also do completely separate tasks. It is not recommended to use command plugins to manipulate the stenography translation process as other plugin types are generally more suited for that.
Examples:
* [https://github.com/benoit-pierre/plover_vlc_commands plover_vlc_commands]
* [https://github.com/nsmarkop/plover_system_switcher plover_system_switcher]
==== API ====
The following would be for a new command called "example_command".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.command =
example_command = plover_example_command.command:example
...
<code>plover_example_command/command.py</code>:
...
def example(engine: plover.engine.StenoEngine, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Dictionary format:
{
"S-": "{PLOVER:EXAMPLE_COMMAND:argument}",
"T-": "{PLOVER:EXAMPLE_COMMAND}"
}
=== plover.dictionary ===
Dictionary plugins are used to support other types of dictionary formats other than Plover's default JSON format. They can range from other text formats to completely code-driven dictionaries.
Examples:
* [https://github.com/benoit-pierre/plover_python_dictionary plover_python_dictionary]
* [https://github.com/nsmarkop/plover_yaml_dictionary plover_yaml_dictionary]
* [https://github.com/benoit-pierre/plover_excel_dictionary plover_excel_dictionary]
==== API ====
The following would be for a new dictionary file format with a file extension of ".abc".
<code>setup.cfg</code>:
...
[options.entry_points]
plover.dictionary =
abc = plover_example_dictionary.dictionary:ExampleDictionary
...
<code>plover_example_dictionary/dictionary.py</code>:
from plover.steno_dictionary import StenoDictionary
class ExampleDictionary(StenoDictionary):
# The basics are that _load is called during initialization to pull your dictionary
# file format into memory and _save is called after an edit for you to implement
# saving to your dictionary file format. If you are not relying on the typical way
# StenoDictionary stores entries in memory as part of your _load implementation,
# such as what plover_python_dictionary does, you may need to re-implement more parts
# of the base class like get, while making sure LONGEST_KEY and similar essential state
# is set appropriately and maintained. See the base class for details on what is available.
def _load(self, filename: str) -> None:
# If you are not maintaining your own state format, self.update is usually
# called here to add strokes / definitions to the dictionary state.
pass
def _save(self, filename: str) -> None:
pass
Note that setting <code>readonly</code> to <code>True</code> on your dictionary class will make it so the user is not able to modify a dictionary of that type in the UI.
=== plover.extension ===
Extension plugins are used to execute arbitrary code. They are started when Plover starts and can be enabled or disabled in the ''Plugins'' section of the configuration dialog. They are ideal for background processes that should run concurrently to the main stenography engine but can be used to perform one-time actions as well.
Examples:
* [https://github.com/nsmarkop/plover_dictionary_lookup plover_dictionary_lookup]
* [https://github.com/nsmarkop/plover_websocket_server plover_websocket_server]
* [https://github.com/tschulte/plover_auto_reconnect_machine plover_auto_reconnect_machine]
* [https://github.com/benoit-pierre/plover/blob/extension_focus_track/plover/extension/focus_track.py plover_focus_track]
==== API ====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.extension =
example_extension = plover_example_extension.main:Main
...
<code>plover_example_extension/main.py</code>:
class Main:
def __init__(self, engine: plover.engine.StenoEngine) -> None:
# Called once to initialize an instance which lives until Plover exits.
pass
def start(self) -> None:
# Called to start the extension or when the user enables the extension.
# It can be used to start a new thread for example.
pass
def stop(self) -> None:
# Called when Plover exits or the user disables the extension.
pass
=== plover.gui ===
Plugins of this type are only available when the Qt GUI is being used.
==== plover.gui.qt.machine_option ====
Examples:
* [https://github.com/benoit-pierre/plover_midi/blob/master/plover_midi/gui_qt/midi_option.py#L15 plover_midi]
==== plover.gui.qt.tool ====
Tool plugins are used to create new user-facing GUI tools like the Suggestions and Lookup windows.
Examples:
* [https://github.com/arxanas/plover_wpm_meter plover_wpm_meter]
* [https://github.com/morinted/plover_layout_display plover_layout_display]
* [https://github.com/benoit-pierre/plover_plugins_manager plover_plugins_manager]
* [https://github.com/morinted/plover_dictionary_builder plover_dictionary_builder]
* [https://github.com/fourshade/spectra_lexer spectra_analyzer]
===== API =====
<code>setup.cfg</code>:
...
[options.entry_points]
plover.gui.qt.tool =
example_tool = plover_example_tool.main:Main
...
And if you're using Qt Designer to create your UI, you can use the helpers provided by <code>plover_build_utils.setup</code> to automate the generation of Python code from your UI definitions; in <code>setup.py</code>:
from setuptools import setup
from plover_build_utils.setup import BuildPy, BuildUi
BuildPy.build_dependencies.append("build_ui")
BuildUi.hooks = ["plover_build_utils.pyqt:fix_icons"]
CMDCLASS = {
"build_py": BuildPy,
"build_ui": BuildUi,
}
setup(cmdclass=CMDCLASS)
Note: this will also hook into the <code>build_py</code> command so other relevant setup commands (<code>build</code>, <code>install</code>, <code>develop</code>, ...) will automatically generate the UI files.
Additionally, you'll want to make sure the correct file are included/excluded; in <code>MANIFEST.in</code>:
# Exclude generated UI files.
exclude plover_example_tool/*_rc.py
exclude plover_example_tool/*_ui.py
# Ensure base UI files are included.
include plover_example_tool/*.ui
recursive-include plover_example_tool/resources *
Check the [https://packaging.python.org/guides/using-manifest-in/ relevant section of the Python Packaging User Guide] for more information on using <code>MANIFEST.in</code>.
<code>plover_example_tool/main.py</code>:
from plover.gui_qt.tool import Tool
from plover.engine import StenoEngine
<nowiki>#</nowiki> You will also want to import / inherit from the Python class generated by your .ui
<nowiki>#</nowiki> file if you are using Qt Designer.
class Main(Tool):
<nowiki> </nowiki> # This is what the tool will show up as in the UI
<nowiki> </nowiki> TITLE = 'Example Tool'
<nowiki> </nowiki> # This is the Qt path to your icon in your resource files to use
<nowiki> </nowiki> ICON = <nowiki>''</nowiki>
<nowiki> </nowiki> # This is an identifier for your tool, just make it unique
<nowiki> </nowiki> ROLE = 'example_tool'
<nowiki> </nowiki> def __init__(self, engine: plover.engine.StenoEngine) -> None:
<nowiki> </nowiki> super().__init__(engine)
<nowiki> </nowiki> # If you are inheriting from your .ui generated class, also call `self.setupUi(self)`.
All of the above assumes that <code>plover_example_tool/resources/</code> will be where your resources are stored.
=== plover.machine ===
Machine plugins are used to support new input protocols, such the serial input from various professional stenography machines or even MIDI keyboards.
Examples:
* [https://github.com/morinted/plover-treal plover_treal]
* [https://github.com/benoit-pierre/plover_midi plover_midi]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/procat.py plover_procat]
* [https://github.com/openstenoproject/plover/blob/master/plover/machine/geminipr.py plover_geminipr]
==== API ====
Example implementation of a new machine called "Example Machine":
<code>setup.cfg</code>:
...
[options.entry_points]
plover.machine =
Example Machine = plover_example_machine.main:ExampleMachine
...
<code>plover_example_machine/main.py</code>:
from typing import Any, Callable, Dict, Tuple
from plover.machine.base import ThreadedStenotypeBase
class ExampleMachine(ThreadedStenotypeBase):
"""This is an example machine."""
# The keys on the machine, separated by whitespace.
KEYS_LAYOUT: str = '0 1 2 3 4 5 6 7 8 9 10'
def __init__(self, params: Dict[str, Any]) -> None:
super().__init__()
# Store the parameters for whatever is needed during runtime
# if you have any provided by or stored in the config
self._params = params
def run(self) -> None:
self._ready()
# You can loop over self.finished.is_set() instead of waiting for a 1 second timeout
# or have any other condition here, but this will be the main place to listen to
# your machine input and construct / notify about stroke input
while not self.finished.wait(1):
self._notify(self.keymap.keys_to_actions(['1']))
def start_capture(self) -> None:
"""Begin listening for output from the machine."""
# The super class implementation by default starts the `run` method in a new thread.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().start_capture()
def stop_capture(self) -> None:
"""Stop listening for output from the machine."""
# The super class implementation by default sets the `self.finished` `threading.Event` object
# then waits for the thread to finish. The `run` method must stop when the event is set.
# You likely don't need to write this function when sub-classing `ThreadedStenotypeBase`
super().stop_capture()
@classmethod
def get_option_info(cls) -> Dict[str, Tuple[Any, Callable[[Any], Any]]]:
"""Get the default options for this machine."""
# Value format: [0]: default value, [1]: conversion function to convert your value into a single usable value.
# The opions can be configured through the UI if a dedicated `machine_option` plugin is available, of by
# manually editing the relevant section in `plover.cfg`.
return {
'option 1': ('default for option 1', str),
'option 2': ('default for option 2', str),
}
...
There are 4 methods that can be called to inform Plover about the machine status: <code>_stopped</code>, <code>_initializing</code>, <code>_ready</code>, <code>_error</code>.
The <code>_notify</code> method should be called whenever a stroke is received. It takes a set of key names in the current system (it's possible to convert from machine key names to system key names (actions) with <code>self.keymap.keys_to_actions</code> function) and then tells the steno engine the key input that just occurred.
There are 3 ways to configure the keymap:
* Add an entry for the machine in a system plugin's default bindings definition (<code>KEYMAPS</code> variable).
* The user can manually set the keymap in the ''Plover -> Configure -> Machine'' tab, along with any other additional configuration if a <code>machine_option</code> plugin is available for the machine type
* Define a class variable <code>KEYMAP_MACHINE_TYPE</code>, which means that the default configuration is the same as the default configuration of the specified machine. [https://github.com/openstenoproject/plover/blob/f4e45364fc5f58745c459f878d13ec6442497f46/plover/machine/procat.py#L33 Example]
The example shown uses the <code>ThreadedStenotypeBase</code> class as it is the most common use case, but you can build machine plugins off of the <code>StenotypeBase</code>, <code>SerialStenotypeBase</code>, or other classes depending on your needs.
=== plover.macro ===
Macro plugins are used for defining strokes that add translations to or modify translations in the translator based on existing state. Unlike commands, macro plugins have access to the entire translator object used by the engine to go from strokes to translations and are meant for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/stenoshrink/plover_agnostic_toggle plover_agnostic_toggle]
==== API ====
The following would be for a new macro called "example_macro".
setup.cfg:
...
[options.entry_points]
plover.macro =
example_macro = plover_example_macro.macro:example
...
plover_example_macro/macro.py:
def example(translator: plover.translation.Translator, stroke: plover.translation.Stroke, argument: str) -> None:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
Through the use of <code>translator.get_state().translations</code> you can access the previously translated entries. You can undo translations using <code>translator.untranslate_translation(...)</code> and you can apply new translations onto the translator using <code>translator.translate_translation(...)</code>.
Dictionary format:
{
"S-": "=example_macro:argument",
"T-": "=example_macro"
}
=== plover.meta ===
Meta plugins are used for defining strokes that create custom formatting actions that get added to the translator. Unlike commands, meta plugins have access to the previously translated text via the formatter that maps translations to actions so they can be used for manipulating the stenography translation process.
'''TODO: Probably improve the description of the use cases here, especially meta vs. macro.'''
Examples:
* [https://github.com/morinted/plover_merge_words plover_merge_words]
* [https://github.com/arxanas/plover_retro_quotes plover_retro_quotes]
* [https://github.com/nsmarkop/plover_last_translation plover_last_translation]
* [https://github.com/nimble0/plover_retro_text_transform plover_retro_text_transform]
==== API ====
The following would be for a new meta called "example_meta".
setup.cfg:
...
[options.entry_points]
plover.meta =
example_meta = plover_example_meta.meta:example
...
plover_example_meta/meta.py:
def example(context: plover.formatting._Context, argument: str) -> plover.formatting._Action:
...
The string argument is optional, and if not provided by the stroke definition after a <code>:</code> will always be sent as <code><nowiki>''</nowiki></code>.
You will want to use either <code>context.new_action()</code> or <code>context.copy_last_action()</code> as the basis for your output value. See the source code for the various properties around an action that can be set or modified. To access the previously translated text, you can call <code>context.last_*</code> methods.
Dictionary format:
{
"S-": "{:example_meta:argument}",
"T-": "{:example_meta}"
}
=== plover.system ===
System plugins are used to define stenography key layouts. If you want to modify steno order, add new keys, remove keys, rename keys, change how orthography rules work, and more then you can define a new system to do so. Once installed, users can change their system in the Plover -> Configure -> System menu.
Examples:
* [https://github.com/nsmarkop/plover_midi4text plover_midi4text]
* [https://github.com/morinted/plover_palantype plover_palantype]
* [https://github.com/benoit-pierre/plover_michela plover_michela]
* [https://github.com/nsmarkop/plover_korean plover_korean]
==== API ====
The following would be for a new system called "Example System".
setup.cfg:
...
[options]
include_package_data = True
...
[options.entry_points]
plover.system =
Example System = plover_example_system.system
...
MANIFEST.in:
include plover_example_system/dictionaries/*
Without the MANIFEST file and <code>include_package_data</code> in your setup files, your dictionaries may not be properly copied into your build when you go to distribute the plugin.
plover_example_system/system.py:
...
<nowiki>#</nowiki> The keys in your system, defined in steno order
KEYS: Tuple[str, ...] = ('S-', 'T-' '*', '-D', '-Z')
<nowiki>#</nowiki> Keys that serve as an implicit hyphen between the two sides of a stroke
IMPLICIT_HYPHEN_KEYS: Tuple[str, ...] = ('T-', '*', '-D')
<nowiki>#</nowiki> Singular keys that are defined with suffix strokes in the dictionary to allow for folding
<nowiki>#</nowiki> them into a stroke without an explicit definition, like -G as {^ing} for English
SUFFIX_KEYS: Tuple[str, ...] = ('-Z',)
<nowiki>#</nowiki> The key in KEYS that serves as the "number key" like # in English
NUMBER_KEY: Optional[str] = None
<nowiki>#</nowiki> A mapping of keys in KEYS to "number" aliases. For example, 'S-': '1-' in English
<nowiki>#</nowiki> means a stroke containing the NUMBER_KEY, '#', and 'S-' can be written as '1-'
NUMBERS: Dict[str, str] = {}
<nowiki>#</nowiki> The stroke to undo the last stroke. It can be multiple keys. As of Plover 4.0,
<nowiki>#</nowiki> this is not strictly required and can just be <nowiki>''</nowiki> since the undo macro has been
<nowiki>#</nowiki> implemented which allows dictionary entries to be defined as the undo stroke:
<nowiki>#</nowiki> <nowiki>https://github.com/openstenoproject/plover/wiki/Dictionary-Format#undo--delete-last-stroke</nowiki>
UNDO_STROKE_STENO: str = '*'
<nowiki>#</nowiki> A list of regex input -> regex output rules for orthography. For example, in English
<nowiki>#</nowiki> +ly, artistic + ly = artistically is defined as: (r'^(.*[aeiou]c) \^ ly$', r'\1ally')
ORTHOGRAPHY_RULES: List[Tuple[str, str]] = []
<nowiki>#</nowiki> When a suffix is being added to a word, these aliases are added to the candidate list
<nowiki>#</nowiki> of options for the resulting word. Can be used for similar / interchangable suffixes
<nowiki>#</nowiki> to have an orthography rule found in the word list without being exactly the same.
<nowiki>#</nowiki> For example, in English 'able' is mapped to 'ible'
ORTHOGRAPHY_RULES_ALIASES: Dict[str, str] = {}
<nowiki>#</nowiki> Name of a file containing words that can be used to resolve the orthography ambiguity
<nowiki>#</nowiki> when applying suffixes. Suffixes for words will be looked up against the word list
<nowiki>#</nowiki> along with their aliases to find a match before just applying a suffix directly.
<nowiki>#</nowiki> The format of a line in the file is:
<nowiki>#</nowiki> word number
<nowiki>#</nowiki> Where number is an integer that sorts possible matches for priority: the lower the
<nowiki>#</nowiki> number, the higher the priority.
<nowiki>#</nowiki> Plover will look for this file in the following directories:
<nowiki>#</nowiki> - the configuration directory (so a user can override the word list)
<nowiki>#</nowiki> - the system's dictionaries root (`DICTIONARIES_ROOT`)
ORTHOGRAPHY_WORDLIST: Optional[str] = 'american_english_words.txt'
<nowiki>#</nowiki> The default key mappings for machine plugins to your system's keys.
<nowiki>#</nowiki> You can define mappings for 0 to many machines, and it is not required that
<nowiki>#</nowiki> the user actually have a plugin installed for the corresponding machine
KEYMAPS: Dict[str, Dict[str, Union[str, Tuple[str, ...]]]] = {
<nowiki> </nowiki> 'Keyboard': {
<nowiki> </nowiki> 'S-' : ('a', 'q'),
<nowiki> </nowiki> 'T-' : 'w',
<nowiki> </nowiki> '*' : ('t', 'g', 'y', 'h'),
<nowiki> </nowiki> '-D' : '[',
<nowiki> </nowiki> '-Z' : '\<nowiki>''</nowiki>,
<nowiki> </nowiki> 'arpeggiate': 'space',
<nowiki> </nowiki> # Suppress adjacent keys to prevent miss-strokes
<nowiki> </nowiki> 'no-op' : ('z', 'x', 'b', ',', '.', '/', ']', '\\'),
<nowiki> </nowiki> },
}
<nowiki>#</nowiki> The path to your default dictionaries. Note it's not an actual folder path, but
<nowiki>#</nowiki> is sort of a relative one similar to paths defined in setup files (but different)
DICTIONARIES_ROOT: str = 'asset:plover_example_system:dictionaries'
<nowiki>#</nowiki> The filenames of files in DICTIONARIES_ROOT that are the default dictionaries.
<nowiki>#</nowiki> Note that they will appear to the user in the order / priority they appear here.
<nowiki>#</nowiki> They do not have to be .json format, but if they are other formats you should
<nowiki>#</nowiki> make sure your plugin has an install dependency on the other plugin providing
<nowiki>#</nowiki> support for the dictionary format you are using
<nowiki>#</nowiki> ONE OF THE MOST IMPORTANT THINGS! is that you prefix your default dictionaries
<nowiki>#</nowiki> with something specific to your system. If you just call one 'main.json' Plover
<nowiki>#</nowiki> will mess up and load the English system's 'main.json' dictionary for example
<nowiki>#</nowiki> Another thing to note is that updating these dictionary files and pushing out
<nowiki>#</nowiki> an update will not necessarily update a user's dictionary if they have made
<nowiki>#</nowiki> copies or otherwise added dictionaries to the system themselves. There is
<nowiki>#</nowiki> currently no good way to handle this sort of dictionary versioning in Plover
DEFAULT_DICTIONARIES: Tuple[str, ...] = (
<nowiki> </nowiki> 'plover_example_system_other_stuff.json',
<nowiki> </nowiki> 'plover_example_system_main.json',
)
Note that there are a lot of possible fields in a system plugin. You must set them all to something but you don't necessarily have to set them to something meaningful, as shown above, so they can be pretty straightforward.
Since it is a Python file rather than purely declarative you can run code for logic as needed but Plover will try to directly access all of these fields which does not leave much room for that. However, it does mean that if for example you wanted to make a slight modification on the standard English system to add a key, you could import it and set your system's fields to its fields as desired with changes to KEYS only; or, you could make a base system class that you import and expand with slightly different values in the various fields for multiple system plugins like Michela does for Italian.
== Development Workflow ==
=== Starting Development ===
'''TODO: Create a suite of [https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository template repos] that can be cloned by people to start their own to make this section really simple. Also point to https://github.com/openstenoproject/plover<nowiki/>'s README about setting up a dev environment first (and maybe update that to encourage the use of venv instead of system-wide setup)'''
<nowiki>**</nowiki>TODO Flesh out the issues that arose on [https://discord.com/channels/136953735426473984/144999734254370816/712446672944234507 Discord]. The big takeaway was that if running from source, you will need the plugin manager installed via <code>pip install -r requirements_plugins.txt</code>
=== Testing ===
While developing your plugin you will need to test the functionality works as expected and the way you can test it depends on how you are running Plover. For any methods discussed, you will at minimum need to restart Plover after you make any code changes to your plugin for them to take effect.
If you are running a packaged version of Plover like what is installed from the Windows installer or the AppImage, you can run the following command on the Plover executable file to install a plugin into Plover's Python environment:
plover -s plover_plugins install -e /path/to/plugin/directory
On Windows you will need to use <code>plover_console.exe</code> instead of <code>plover.exe</code>. Note that what is exposed through that interface is essentially the <code>pip</code> command, so the <code>-e</code> in the example is the "editable" flag for <code>pip</code> which lets you just restart Plover to see your changes rather than having to reinstall the plugin each time. That means you also have the freedom to install plugins from local file paths, from git, etc. as you would install any Python package with <code>pip</code>.
If you are running Plover from source instead, Plover will be using whatever Python environment you execute Plover from. You can still use the above command if plover is in the PATH of the environment you're running from and you've already installed the [https://github.com/benoit-pierre/plover_plugins_manager plugin manager] into your environment, otherwise you would just use <code>pip</code> commands like normal to install your plugin into the Python environment you're using:
pip install -e /path/to/plugin/directory
=== Publishing ===
Once you've finished testing your plugin works as expected, you're ready to publish it to be installed by other users that are not developers. This is done by uploading your package to [https://pypi.org/ PyPI, the Python Package Index] with some guidelines around it.
Those guidelines up front:
* Your plugin's name as defined in your setup files should start with <code>plover-</code> to avoid clashing with general Python package namespaces
* Your plugin's setup files must define one of its keywords to be <code>plover_plugin</code> as this is how the plugin manager finds it on PyPI
* Your plugin's setup files must define a long_description. The plugin manager can display plain text, .rst, or .md files specified here.
* Your plugin should only use features that the distributed version of Plover supports in order to prevent errors for end users; that version can be verified by looking at Plover's setup files
The first thing you need to do to actually publish is make an account on PyPI which should be relatively straightforward.
There are a myriad of ways to actually build and publish a package but the easiest and most recommended way to publish to PyPI is by running [https://twine.readthedocs.io/en/latest/ twine] in your plugin directory like so:
python setup.py sdist bdist_wheel
twine upload dist/*
See its documentation for more information on how to install it and set it up. You don't need to publish to Test PyPI as it suggests unless you want to as part of your workflow. One thing to note about twine is it will automatically convert your <code>plover_x_name</code> snake case name for your plugin into a <code>plover-x-name</code> hyphenated name for the package it uploads.
If you make updates to your plugin and need to publish that, just make sure to bump the version in your setup files and otherwise the steps are exactly the same.
=== Adding the package to the Plover plugins registry ===
Because PyPI's XMLRPC search endpoint is disabled, starting from version 0.5.16, the [https://github.com/benoit-pierre/plover_plugins_manager/ Plugins manager for Plover] fetches the list of Plover plugins from a [https://github.com/openstenoproject/plover_plugins_registry GitHub repository]. You should contact the maintainer to have your plugin added to the list.
[[Category:Plover]]
48868ccb9dd6323f0cbac93030d085f53d540a77
Configuration
0
61
2185
234
2024-06-23T16:27:38Z
Aerick
9
add note on theming
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser.
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
==== Keymap section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
== Output Tab ==
{| class="wikitable"
|+
|'''Enable at start'''
|Determines whether Plover will start at system boot
|-
|'''Start attached'''
|Determines whether Plover will start without a starting space
|-
|'''Start capitalized'''
|Determines whether Plover will start with the first letter capitalized
|-
|'''Space placement'''
|Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output'''
|-
|'''Undo levels'''
|Determines how many strokes can be undone with <code>*</code>
|-
|'''Key press delay (ms)'''
|Determines how many milliseconds Plover will wait before outputting the translation of your strokes
|}
== Plugins Tab ==
Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here.
== System Tab ==
Allows the user to switch to another stenography system.
== Theming/Dark Mode ==
Plover supports using Qt Style Sheets file for custom theming.
Premade QSS files can be found by:
* Searching on sites like https://qss-stock.devsecstudio.com/.
* [[QSS files for Plover|Browsing community made QSS files specifically for Plover]] (instructions also included in this page).
fe62bacb2d233f9f08519f4731b6888fa0617b64
File:Aerick's Adwaita Dark Windows.png
6
1500
2186
2024-06-23T16:32:22Z
Aerick
9
wikitext
text/x-wiki
Aerick's Adwaita Dark QSS theme on Windows
07814a0077f99a41da74c43c8f026a38b30e8a17
File:Aerick's Adwaita Dark theme on GNOME..png
6
1501
2187
2024-06-23T16:33:12Z
Aerick
9
wikitext
text/x-wiki
Aerick's Adwaita Dark theme on GNOME.
72ad419b51e4eea809ce842f97ab864056d31570
Theming Plover with QSS
0
1502
2188
2024-06-23T16:34:24Z
Aerick
9
Created page with "== Usage == Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions: # Download the QSS file and name it <code>plover.qss</code>. # In Plover's main window, go to <code>File → Open Config Folder</code>. # Move the <code>plover.qss</code> file into this folder. # Restart Plover. == Community made QSS themes == === [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] === File:Aerick's A..."
wikitext
text/x-wiki
== Usage ==
Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions:
# Download the QSS file and name it <code>plover.qss</code>.
# In Plover's main window, go to <code>File → Open Config Folder</code>.
# Move the <code>plover.qss</code> file into this folder.
# Restart Plover.
== Community made QSS themes ==
=== [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] ===
[[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]]
[[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]]
87cf0d0ca7ba89942dd4cb0c7fa7fe492869718a
Installation Guide
0
8
2189
2172
2024-06-23T16:43:14Z
Aerick
9
/* Install Plover on Linux */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the [https://plover.wiki/index.php/Plover-uinput plover-uinput wiki] page for detailed setup instructions.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
83c755dabf25b232e2d71c66c149bbc9dbd9e4e9
2190
2189
2024-06-23T16:44:19Z
Aerick
9
Reverted edits by [[Special:Contributions/Aerick|Aerick]] ([[User talk:Aerick|talk]]) to last revision by [[User:Neu neutral|Neu neutral]]
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.<span id="download-the-windows-installer-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
{{Info|text=Make sure to follow step 4 when starting Plover for the first time. '''Double clicking the app will not work''' if it is your first time opening Plover (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).}}
<!--T:7-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch to X11 in order to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you’re running Wayland and how to switch.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, restart your computer.'''<span id="error-relating-to-xcb"></span>
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
58ffc3ef18fbe0eaf2bd169aa175448687da0006
2191
2190
2024-06-23T16:45:13Z
Aerick
9
Undo revision [[Special:Diff/2190|2190]] by [[Special:Contributions/Aerick|Aerick]] ([[User talk:Aerick|talk]])
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Info|text='''Plover is not officially supported on systems running Wayland at this moment'''. This includes systems like Ubuntu and Fedora. Either [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS switch to X11] or use the [https://github.com/LilleAila/plover-uinput plover-uinput] plugin. See the [https://plover.wiki/index.php/Plover-uinput plover-uinput wiki] page for detailed setup instructions.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
83c755dabf25b232e2d71c66c149bbc9dbd9e4e9
Plover-uinput
0
1503
2192
2024-06-23T17:08:12Z
Aerick
9
Created page with "== Background == Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups: * Fedora 40 GNOME 46 == Installation and setup == === Plugin installation === The <code>plover-uinput</code> plugin is not in the plugins manager and has to be i..."
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Fedora 40 GNOME 46
== Installation and setup ==
=== Plugin installation ===
The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually.
# Navigate to the folder containing the AppImage.
# Run <code>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</code>.
#* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage.
# Restart Plover.
# Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>.
For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]].
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<code>sudo usermod -aG input $USER</code>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<code>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</code>
For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>.
{{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify <code>ibus</code> is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
03a78b83b3f1893448630473fd39eed5aadf9ea6
Troubleshooting issues
0
14
2193
2143
2024-06-23T17:15:00Z
Aerick
9
/* Plugins not showing in the plugins manager: fix link */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to [[Supported Hardware#Setting Up a Hobbyist Machine With Plover|set up your machine]].
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
67b4a901ee129594f519484cb9b4e99529bef105
2198
2193
2024-06-23T19:52:54Z
Aerick
9
/* No output despite keys showing up in the paper tape */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to set up your machine.
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. Also see [[Plugins#Manually Installing Plugins|manually installing plugins]] for help installing this plugin as this is not in the plugins manager.
5fd10047c7592e82dabe9b8b97ffcc9ebeda9d78
Setting up a hobbyist writer with Plover
0
1504
2195
2024-06-23T19:48:54Z
Aerick
9
Created page with "== Background == Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time. == Video summary == The following narrated video goes over the main method..."
wikitext
text/x-wiki
== Background ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
=== Autoreconnect ===
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page.
256ea357239abbc0edaf1e682020be5b15172367
2199
2195
2024-06-23T20:14:38Z
Aerick
9
Aerick moved page [[Setting up Gemini PR with Plover]] to [[Setting up a hobbyist writer with Plover]]
wikitext
text/x-wiki
== Background ==
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
=== Autoreconnect ===
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page.
256ea357239abbc0edaf1e682020be5b15172367
Beginner's Guide
0
4
2197
2159
2024-06-23T19:51:59Z
Aerick
9
/* Update set up link */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable.
[[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]]
You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a professional stenography machine, or a hobbyist steno keyboard, you’ll need to configure Plover to look for your machine.
* [[Supported Hardware#Stenotype Machines|Setting up a professional steno machine with Plover]].
* [[Setting up Gemini PR with Plover|Setting up a hobbyist steno keyboard with Plover]].<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
d2e73d1a81f694538a7ffc6f958fe4ea238078d8
2226
2197
2024-06-23T22:07:54Z
Aerick
9
/* Confirm it’s working */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See the [[Supported Hardware]] page for a [https://plover.wiki/index.php/Supported_Hardware#Known_supported_keyboards list of supported keyboards].
* See also: [https://plover.wiki/index.php/Supported_Hardware#Which_type_of_key_switch_should_I_choose? Which type of key switch should I choose?]
<!--T:31-->
<span id="adapt-a-keyboard-for-steno-use"></span>
=== Adapt a keyboard for steno use ===
<!--T:32-->
Most keyboards have their keys arranged in staggered rows. This makes it difficult to press two keys in a column with a single finger. If you have a mechanical keyboard, flipping the top row of key caps can help make this a little more comfortable.
[[File:Mech keyboard with top row flipped.png|alt=Mech keyboard with top row flipped|center|thumb|637x637px|Flipping the top row of key caps can make a mechanical keyboard easier to steno on.]]
You can also use [[Supported Hardware#Keytoppers|keytoppers]], or print some custom [[Supported Hardware#Keycaps|keycaps]] if you have a 3D printer. Keyboards with ortholinear layouts (a grid arrangement of keys) can also be [[Supported Hardware#NKRO keyboards with an ortholinear layout|adapted for use with Plover]].
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling machines designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [https://plover.wiki/index.php/Supported_Hardware#Dedicated_machines_designed_for_use_with_Plover Dedicated machines designed for use with Plover].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
3f49ad5ffe00a34db7165ce1a4e54bf01e658ed3
2228
2226
2024-06-23T22:12:33Z
Aerick
9
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See: [[using a standard keyboard with Plover]]
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling writers designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
654222e09d3ba7188b5fbfcb9f8a570608d59225
2229
2228
2024-06-23T22:14:42Z
Aerick
9
/* Use the correct body posture and finger placement */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See: [[using a standard keyboard with Plover]]
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling writers designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [[Beginner's_Guide#Stenography_machine| stenography machine]] .
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling your strokes or arpeggiating.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
bbaef1bd21036f965ca8ffef15ed32903a34e846
Setting up a Stentura 400SRT with Plover
0
22
2201
68
2024-06-23T20:18:57Z
Aerick
9
Aerick moved page [[How to setup and use Plover with a Stentura 400SRT]] to [[Setting up a Stentura 400SRT with Plover]]
wikitext
text/x-wiki
<markdown>
## What you need
1. Stentura Stenograph machine
This was done with a **Stentura 400SRT**, but it should work with others versions (e.g. 200SRT), as long as it is the electric version.
1. A serial cable.
There are a couple options here:
+ **Option 1: Stenograph realtime cable kit**
The one that usually comes with the Stentura comes in three parts. A grey connector, a black connector, and a cable. **There's nothing special about this cable**, even though they try to pretend there is. So if you don't already have it, don't spend the amounts of money they are charging to get one. **Use Option 2 instead.**
+ **Option 2: Any RS232 (Also called DB9) male to female cross over-cable**
This is also known as Null Modem. This is a serial cable that will work with the machine.
Here are a few options from Amazon:
- [StarTech SCNM9FM2MBK](https://www.amazon.com/StarTech-com-RS232-Serial-Female-SCNM9FM2MBK/dp/B00CEMGMMM/)
- [Serial Modem Cable Female RS232](https://www.amazon.com/Serial-Modem-Cable-Female-RS232/dp/B0026KE4CM/)
- [C2G Female RS322 Adapter](https://www.amazon.com/C2G-Cables-Go-Female-Adapter/dp/B000067RW2/) — No cable, so very short. Useful to minimize the amount of cords
- [Cables Online Transfer Adapter](https://www.amazon.com/CablesOnline-Slimline-Transfer-Adapter-AD-N04M-2/dp/B00HGIRU3O/) — Even shorter
1. USB to serial adapter
If you intend to connect to a PC serial port directly, you are already all set with the machine and serial cable. If you want to connect via USB, then you'll also need a USB to serial adapter. If you're not sure if you'll need it, then you probably need it.
* Serial (Female connector) to USB converter. Once again, here are some options:
+ [Sabrent Serial RS232 Converter](https://www.amazon.com/Sabrent-Serial-RS-232-Converter-CB-DB9P/dp/B00IDSM6BW/)
+ [Tera Grand Premium USB to serial adapter](https://www.amazon.com/Tera-Grand-Premium-Adapter-Supports/dp/B00BUZ0K68/) — No cable, so very short
+ [StarTech DCE Adapter Cable with FTDI Null Modem model](https://www.amazon.com/gp/product/B008634VJY/) - Requires a serial gender changer
Most of these USB to serial adapters come with driver files that you have to install before the adapter works. After installing the driver, make sure you reboot your computer or you probably won't be able to connect to your machine. Additionally, if you have a new computer with USB 3.0 ports many drivers will not support it and you can work around this issue by getting a USB 2.0 hub to connect through as a gateway.
**It's important that there is a cross-over cable at some point of the connection, and only one. The Stenograph cable has one built in.** If you purchased any of the "option 2" cables, those are also cross-over cables and will work.
The terms "RS232" and "DB9" mean the same thing and can be used interchangeably. The same goes for "Cross-over" and "Null Modem"
## Putting it all together
If you have a **USB port:**
- Computer USB port → USB to serial adapter → serial cross-over cable → steno machine
If you have a **serial port** on your computer:
- Computer serial port → serial cross-over cable → steno machine
## Connecting to Plover
### Turning on your Stenograph Machine
Turn on the Stenograph with the switch on the face plate.
The green light indicates that the machine is powered on.
The red light signifies connection with a computer.
If the red light is blinking, or the green and red are blinking back and forth, don't worry, it'll still work. If you want to stop the blinking, there are some instructions later.
### Configuring Plover
Next, we can connect Plover to use the device. In Plover, click **Configure**. In the Configuration window, click **Machine**. In the "machine" dropdown, select **Stentura**.
Click the **Scan** button, next to **Port**. This will refresh the Port list. You'll need to find the correct port number. If there is only one, it's probably the one you want. If there is more that one, you can try a few until you find the one that works. If you're using a USB device, it's likely to be the larger number. If you're connecting to the serial port directly, it'll probably be the first one.
When using the USB converter, the other settings should stay at the defaults. Which are 9600, 8, N, 1, no flow control. When connecting with a serial port, it is recommended to use a baud rate of 2400. (Note: some users have found that they need to use 2400 as the baud rate even when using a USB converter.)
Press `OK` to get out of the Configure menu, until you get back to the main Plover screen. Click the refresh button, and it should say `Stentura: connected`. A successful connection is also indicated by the red light on the Stentura turning on -- it will not come on until Plover connects. If the connection is not established, then something went wrong, try pressing the refresh button in the Plover window and if that doesn't work double check all the steps above.
That's it. You should get output when typing.
## Stop the blinking
The lights blink when the internal memory is full, or if the battery is drained, or both.
if the green light is blinking, then the battery is drained. To charge, leave it plugged in and *turned on*. A good battery will charge in about 8 hours. It's possible that the battery is dead. If you bought the unit second hand and a few years old, then it's very likely to be dead. If that's the case, the light will never stop blinking, no matter how much you try charging it. If you remove the battery, the light will stop blinking and will continue to work with the power cable. The dead battery is useless anyway, so throw it away and now your unit is lighter. (Or buy a new one http://www.stenoworks.com/writer-accessories/writer-batteries/ )
If the red light is blinking, then the internal memory is full or close to full. To clear it:
* turn the Stenograph off
* while holding STK, turn the machine back on.
* the lights should be both blinking back and forth. If not, try again from the start.
* press KWR to clear the memory, or TPH if you change your mind.
The memory will get full regularly so you'll have to do this occasionally. So remember it!
## Manual
Valentin from the [Plover Forums](https://groups.google.com/d/msg/ploversteno/dhLSXsPdGYY/jZQlVdcIAQAJ) has kindly scanned the entire manual. It is very useful to read, and you can get it [here](https://0au.de/~apo/stentura_200_400_srt_manual.pdf).
## Resurrect a dead Stentura 200SRT/400SRT
If the electronics in your 200SRT/400SRT aren't working, you may be interested in replacing them altogether with an Arduino controller. The machine will then be powered over USB through the Arduino -- don't plug in its own power supply lest you destroy your Arduino. The electric paper tape advance will not work; if you want paper tape you'll have to put the mechanism in manual mode (see the instructions) which has a slightly heavier touch, but you don't need paper tape for plover. Likewise, it will no longer have the ability to record strokes for later playback when not connected to the computer.
It is a pretty simple task requiring soldering 6 wires to the I/O Expander board that is located on
top of the steno mechanism, just under the cover that opens. There's a [video](https://youtu.be/ccxri4A-SbM) and an [Arduino sketch](https://github.com/balthamos/steno-arduino). There is a debouncing delay constant in the sketch that may need to be increased if your machine produces multiple outputs in plover for a single stroke.
Note: this relies on the electronics on the I/O Expander board still working -- it is a collection of shift register ICs and seems likely to work even if the main electronics board at the bottom of the machine is no longer working. It would be a bigger job to wire the Arduino directly to all 24 switches but it could be done if the I/O Expander electronics did not work. See [this thread](https://groups.google.com/forum/#!topic/ploversteno/l6LDaf855hg) for pictures of a rebuild using a Raspberry Pi that interacts directly with the switches.
</markdown>
d7cdbef6f2777bf5d885862ccf9c910368b754fe
How to setup and use Plover with a Stentura 400SRT
0
1506
2202
2024-06-23T20:18:57Z
Aerick
9
Aerick moved page [[How to setup and use Plover with a Stentura 400SRT]] to [[Setting up a Stentura 400SRT with Plover]]
wikitext
text/x-wiki
#REDIRECT [[Setting up a Stentura 400SRT with Plover]]
46ab7b9c6f701baee40dd848ce39259e04700e0d
Setting up a Stentura Protege with Plover
0
29
2203
135
2024-06-23T20:19:13Z
Aerick
9
Aerick moved page [[Stentura Protege Setup and Usage Instructions]] to [[Setting up a Stentura Protege with Plover]]
wikitext
text/x-wiki
Congratulations on getting a Stentura Protege. This page will show you how to connect it to your computer and setup Plover.
[https://imgur.com/vKbiTOJ Photo of my Protege. Note: Mine did not come with the removable name plate.]
== What you need ==
You will need two cables:
# '''Data Cable:''' USB to RS-232 DB9 Male Serial Cable. (Make sure the cord has a male serial with 9 pins)
* [http://a.co/9KWXIMP Amazon link]
# '''Power Cable:''' USB 2.0 Cable - A-Male to B-Male. (The Stentura Protege can be powered either by USB or by a proprietary A/C charger. Your machine may come with a power chord. Mine did not.)
* [http://a.co/fQDbqWD Amazon link]
Note: Both of those Amazon links are for 6 foot cables. Make sure you get a cord long enough for your setup.
To use USB you need to install the <code>plover_stenograph_usb</code> plugin from the plugins manager and if you're on Windows you'll need to install the USB drivers from Stenograph.
== Serial Setup ==
'''Step 1.''' Connect power cord: Connect USB A-to-B cable to Stentura machine and computer or use the AC adapter. Your machine now has power. On the front of your Stentura is a row of 6 grey buttons. Press and hold the 1st one to turn it on.
'''Step 2.''' Connect data cord: Connect serial-to-USB cable to Stentura machine and computer.
[https://imgur.com/wGc9y4p Photo of both cables connected.]
'''Step 3.''' Download the latest version of Plover for your OS.
'''Step 4.''' Open Plover. Click the configure button. A new configuration window will open. Click the tab for machine. Select Stentura from the drop down menu. Go back to the window where you clicked the configure button. Click the radio button "enable" to enable output. Click the reload button (arrows going in a circle) until the dot turns green and it says "Stentura: Connected"
'''Step 5.''' Thanks to Plover, your Stentura can now type on your computer. Start learning Steno with Plover [https://www.openstenoproject.org/learn-plover/lesson-1-fingers-and-keys.html lessons] and [http://stenoknight.com/plover/haxeploverlearn/ interactive drills].
== Something went wrong ==
I ran into a problem because I was using an older Serial-to-USB cable and Windows was not able to load the correct Prolific drivers for the cable. I found a solution. [http://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error This site] explains the problem and gives you a link to download the right drivers.
== Stentura Protege Manual ==
[https://www.stenograph.com/content/files/documents/Stentura%20Protege%20User%20Guide.pdf Link to user guide PDF]
== Stop The Beeping ==
My Stentura Protege did not come with a battery. As long as it has power it runs just fine, but it makes an annoying little beep every minute. This is the low battery beep and it beeps even if you have no battery connected. I searched through the manual and did not see a way to disable this. But, I discovered two approaches to remove the beeping. I will explain how below. I was successful but please try this at your own risk.
'''What is making the beep?''' The beep is made by a small little speaker called a Piezo Electric Buzzer (cylinder with hole in it and plus sign). It is soldered to the circuit board and labeled "Alarm." (If you are curious, you can learn more about how these work in this [https://www.youtube.com/watch?v=77h1JhD9Syw video].)
'''Opening up the machine''' To see this beeping speaker you have to turn the machine over. Then, remove some screws. There are two sets of different sized screws. Make sure you keep track of which screws go where. (Hint: The smaller screws go with the metal washers. [https://imgur.com/P0RR4dy Photo].) Take the back cover off carefully because the battery wires are still attached to the case. [https://imgur.com/kTWBKbM Photo]. Locate the beeping speaker. It is labeled Alarm on the circuit board. [https://imgur.com/4kgY1kC Photo].
'''Option 1''': Mute the speaker by putting a small bit of tape over the hole next to the plus sign shown in this [https://imgur.com/4kgY1kC photo]. I used masking tape, but you might want to try experimenting with other types of tapes. This will lower the volume a lot and is non-destructive.
'''Option 2''': Permanently remove the ability of your stenograph to make sounds. This will destructively remove all capabilities of your machine to make beeping sounds. Make sure you really want to go in this direction before moving forward. If you plan on using this machine with a battery, the low battery beep could be useful. I plan on only using it plugged in and I don't plan on getting a battery. I successfully completed this modification, but please do this at your own risk.
The speaker, a Piezo Electric Buzzer makes sound by vibrating a ceramic plate. This can be carefully broken. I used a screw. [https://imgur.com/a/BRrsZ Photo]. Place it into the hole and gently twist. [https://imgur.com/a/mQI5H Photo]. You can plug in the machine again to test if you have successfully disabled the speaker. If you no longer hear the chirp then you have been successful.
Alt option: I did not do this, but it should be possible to desolder the Piezo Electric Buzzer from the board. Since I have not done this I can not confirm that this would be without side effects.
cde02ae53339ea4adeb57d53a27f79962970c65f
Stentura Protege Setup and Usage Instructions
0
1507
2204
2024-06-23T20:19:13Z
Aerick
9
Aerick moved page [[Stentura Protege Setup and Usage Instructions]] to [[Setting up a Stentura Protege with Plover]]
wikitext
text/x-wiki
#REDIRECT [[Setting up a Stentura Protege with Plover]]
a62d778fd6641103e67d860241cdbea6429d15a8
Setting up your writer with Plover
0
1508
2205
2024-06-23T20:21:34Z
Aerick
9
Created page with "Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions. == Hobbyist writers == All the hobbyist steno writers use the Gemini PR protocol by default: * TinyMod * Nolltronics Ecosteno * Nolltronics Multisteno * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyboards Uni * Starboard ==== [[Setting up a hobbyist writer with Plover]] ==== == Stentura Protege == ==== Setting up a Ste..."
wikitext
text/x-wiki
Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions.
== Hobbyist writers ==
All the hobbyist steno writers use the Gemini PR protocol by default:
* TinyMod
* Nolltronics Ecosteno
* Nolltronics Multisteno
* StenoKeyboards Asterisk
* StenoKeyboards Polyglot
* StenoKeyboards Uni
* Starboard
==== [[Setting up a hobbyist writer with Plover]] ====
== Stentura Protege ==
==== [[Setting up a Stentura Protege with Plover]] ====
== Stentura 400SRT ==
==== [[Setting up a Stentura 400SRT with Plover]] ====
ea08200947c8ce1b1ad67c52d296f011c4ce00aa
2219
2205
2024-06-23T21:52:28Z
Aerick
9
/* Hobbyist writers */
wikitext
text/x-wiki
Each machine is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions.
== Hobbyist writers ==
All the hobbyist steno writers use the Gemini PR protocol by default:
* TinyMod
* Nolltronics Ecosteno
* Nolltronics Multisteno
* StenoKeyboards Asterisk
* StenoKeyboards Polyglot
* StenoKeyboards Uni
* Starboard
==== See: [[setting up a hobbyist writer with Plover]] ====
== Stentura Protege ==
==== See: [[setting up a Stentura Protege with Plover]] ====
== Stentura 400SRT ==
==== See: [[setting up a Stentura 400SRT with Plover]] ====
4b8c0edcfca141db324a5a2abda47e99b146f3c2
2223
2219
2024-06-23T22:05:54Z
Aerick
9
wikitext
text/x-wiki
Each writer is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions.
== Hobbyist writers ==
All the hobbyist steno writers use the Gemini PR protocol by default:
* TinyMod
* Nolltronics Ecosteno
* Nolltronics Multisteno
* StenoKeyboards Asterisk
* StenoKeyboards Polyglot
* StenoKeyboards Uni
* Starboard
==== See: [[setting up a hobbyist writer with Plover]] ====
== Stentura Protege ==
==== See: [[setting up a Stentura Protege with Plover]] ====
== Stentura 400SRT ==
==== See: [[setting up a Stentura 400SRT with Plover]] ====
d24fcbfc38c8d38662b1320171b743f5e083aaac
2224
2223
2024-06-23T22:06:00Z
Aerick
9
Aerick moved page [[Setting up your machine with Plover]] to [[Setting up your writer with Plover]]
wikitext
text/x-wiki
Each writer is set up differently with Plover. This page serves as a reference for all the different set up pages and instructions.
== Hobbyist writers ==
All the hobbyist steno writers use the Gemini PR protocol by default:
* TinyMod
* Nolltronics Ecosteno
* Nolltronics Multisteno
* StenoKeyboards Asterisk
* StenoKeyboards Polyglot
* StenoKeyboards Uni
* Starboard
==== See: [[setting up a hobbyist writer with Plover]] ====
== Stentura Protege ==
==== See: [[setting up a Stentura Protege with Plover]] ====
== Stentura 400SRT ==
==== See: [[setting up a Stentura 400SRT with Plover]] ====
d24fcbfc38c8d38662b1320171b743f5e083aaac
Video game controllers
0
1509
2206
2024-06-23T20:30:33Z
Aerick
9
Created page with "= Video Game Controller = It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockqu..."
wikitext
text/x-wiki
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
10313d816563d61734e877e05ed67932c95ebf19
DIY steno writers
0
1510
2207
2024-06-23T20:35:17Z
Aerick
9
Created page with "== DIY Machines == Projects to build your own machine. {| class="wikitable" |- ! Product Name ! About |- | [https://mechwild.com/product/bb-steno/ MechWild BB Steno] | <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" /> A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches a..."
wikitext
text/x-wiki
== DIY Machines ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
92b51094a686389ae9a1f6d4d58c9942c88983ab
2211
2207
2024-06-23T21:00:26Z
Aerick
9
/* DIY Machines */
wikitext
text/x-wiki
== DIY machines specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
<span id="notebooks-with-nkro"></span>
== Adapt a keyboard for steno use ==
<img src="[[:File:Https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg|https://c1.staticflickr.com/5/4202/34180678224 98d3e26f1f n.jpg]]">
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno use, you can use:
* Keytoppers
* Keycaps
You can also use a keyboard with an ortholinear layout.<span id="keytoppers"></span>
=== Keytoppers ===
Laser-cut keytoppers are in the shape of the keys on a steno machine. You stick them on top of the relevant keys on the keyboard. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store]. You can also make your own keytoppers out of plastic or even coins.
<img src="https://i.imgur.com/cjWDy2J.jpeg">
<span id="keycaps"></span>
=== Keycaps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom keycaps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
<ul>
<li><p>[https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.</p>
<p><img src="https://imgur.com/FRwXu8x.jpg" width="400"></p></li>
<li><p>The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)</p></li>
<li><p>You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].</p></li></ul>
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).<span id="nkro-keyboards-with-an-ortholinear-layout"></span>
e5d6a9027ed5756733130084d73302cb30773566
2222
2211
2024-06-23T22:04:20Z
Aerick
9
/* Adapt a keyboard for steno use */
wikitext
text/x-wiki
== DIY machines specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
89b45beb75d508775b22ebb3ac68b703b5feeb3c
Out of production writers
0
1511
2208
2024-06-23T20:37:17Z
Aerick
9
Created page with "== Out-of-production Machines == Models that are no longer made or available for sale. {| class="wikitable" |- ! Product Name ! Manufacturer ! About ! Years |- | Stenoboard | Utopen (Emanuele Caruso) | <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" /> The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Steno..."
wikitext
text/x-wiki
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
cc64f1b7bcea2f8b1bc49666fc65810dbfd4ae0c
Using a standard keyboard with Plover
0
1512
2215
2024-06-23T21:27:05Z
Aerick
9
Created page with "If you don’t have a steno machine, you can use a standard keyboard. However, most keyboards do not work very well with Plover for a number of reasons. First of all, the stagger makes it difficult to press multiple keys at once. Standard keyboards also have heavy switches, again making it difficult to press down multiple keys simultaneously. The majority of standard keyboards also do not have N-key rollover (NKRO). == What’s NKRO? == NKRO stands for '''N-Key Rollover..."
wikitext
text/x-wiki
If you don’t have a steno machine, you can use a standard keyboard. However, most keyboards do not work very well with Plover for a number of reasons. First of all, the stagger makes it difficult to press multiple keys at once. Standard keyboards also have heavy switches, again making it difficult to press down multiple keys simultaneously. The majority of standard keyboards also do not have N-key rollover (NKRO).
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO].
== How do I know if my keyboard has NKRO? ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
== What if my keyboard is not capable of NKRO? ==
If you don’t have a keyboard that’s capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the keyboard chords.
=== Arpeggiate ===
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
=== Roll your strokes ===
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|Demonstration of rolling."]]
6f4b3a57e5804fe7128d1a953f1dddacc4fba544
2217
2215
2024-06-23T21:50:05Z
Aerick
9
wikitext
text/x-wiki
If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons:
* The staggered layout makes it difficult to press multiple keys at once.
* Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously.
* The majority of standard keyboards do not have N-key rollover (NKRO).
The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno.
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography.
== How do I know if my keyboard has NKRO? ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
== Should I buy an NKRO keyboard? ==
In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography.
That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare.
== What if my keyboard is not capable of NKRO? ==
If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes.
=== Arpeggiate ===
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time.
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
=== Roll your strokes ===
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|Demonstration of rolling."]]
c5e7cab7ae27b57fc95d1086dfef9c0aaeae0287
2220
2217
2024-06-23T21:57:35Z
Aerick
9
wikitext
text/x-wiki
If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons:
* The staggered layout makes it difficult to press multiple keys at once.
* Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously.
* The majority of standard keyboards do not have N-key rollover (NKRO).
The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno.
== What’s NKRO? ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography.
== How do I know if my keyboard has NKRO? ==
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
== Should I buy an NKRO keyboard? ==
In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography.
That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare.
== What if my keyboard is not capable of NKRO? ==
If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes.
=== Arpeggiate ===
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time.
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
=== Roll your strokes ===
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|Demonstration of rolling."]]
== Adapting a standard keyboard for use with Plover ==
See: [[DIY machines#Adapt a keyboard for steno use|DIY machines]]
3f52707274e4727ce53e988d8cf1bb6ba18fdfa3
2221
2220
2024-06-23T22:04:09Z
Aerick
9
wikitext
text/x-wiki
If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons:
* The staggered layout makes it difficult to press multiple keys at once.
* Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously.
* The majority of standard keyboards do not have N-key rollover (NKRO).
The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno.
== NKRO ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography.
=== How do I know if my keyboard has NKRO? ===
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
=== Should I buy an NKRO keyboard? ===
In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography.
That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare.
== What if my keyboard is not capable of NKRO? ==
If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes.
=== Arpeggiate ===
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time.
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
=== Roll your strokes ===
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|Demonstration of rolling."]]
== Adapting a standard keyboard for use with Plover ==
=== Top row key cap flip ===
On most mechanical keyboards, it is possible to take off the top row of key caps and flip them. This brings the two keys in a column closer together.
[[File:Mech keyboard with top row flipped.png|alt=Mechanical keyboard with top row flipped for steno use|center|thumb|711x711px|Flipping the top row of keys can make it easier it press two keys in a column simultaneously.]]
=== Key toppers ===
You can glue key toppers to the existing keys to make them easier to press. You can buy laser-cut keytoppers from the [http://plover.deco-craft.com/ Plover Store], and you can also make your own key toppers out of plastic, cardboard, or even coins. <img src="https://i.imgur.com/cjWDy2J.jpeg">
=== Key caps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom key caps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
* [https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service. <img src="https://imgur.com/FRwXu8x.jpg" width="400">
* [https://aerick.ca/steno/outemu-stenotoppers/ Aerick's Outemu StenoToppers] are a derivative of the original stenotoppers that work better on some keyboard switches.
* The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)
* You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
6e44e6921d63e5eb5716f24a3ac94f8dfbd8ec0c
Setting up your machine with Plover
0
1513
2225
2024-06-23T22:06:00Z
Aerick
9
Aerick moved page [[Setting up your machine with Plover]] to [[Setting up your writer with Plover]]
wikitext
text/x-wiki
#REDIRECT [[Setting up your writer with Plover]]
ce42bc1e9e321a8d5b792a433186b8984e0d3caa
DIY steno writers
0
1510
2230
2222
2024-06-23T22:15:21Z
Aerick
9
wikitext
text/x-wiki
== DIY writers specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
ede978861cd55b09ef3c49515229359fda88e248
2231
2230
2024-06-23T22:15:28Z
Aerick
9
Aerick moved page [[DIY machines]] to [[DIY writers]]
wikitext
text/x-wiki
== DIY writers specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
ede978861cd55b09ef3c49515229359fda88e248
2233
2231
2024-06-23T22:16:38Z
Aerick
9
Aerick moved page [[DIY writers]] to [[DIY steno writers]]
wikitext
text/x-wiki
== DIY writers specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
=== Which type of key switch should I choose? ===
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
|-
! How many keys are in the average chord?
!
|-
| 1: 23<br />2: 221<br />3: 1115<br />4: 3247<br />5: 6168<br />6: 7820<br />7: 7293<br />8: 5069<br />9: 2707<br />10: 1126<br />11: 331<br />12: 90<br />13: 21<br />14: 3<br />15: 1
| <img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
|-
! Switch
! Stat
! Note
! Machines
|-
| Kailh Choc Pink Pro
| 20 cN linear
| The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
| All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
| Gateron Clear / White
| 35 cN linear
| A popular stock option available on the market
| All StenoKeyboards boards and the TinyMod use this switch
|-
| Matias Red
| 35 cN linear
| Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
| SOFT/HRUF uses this switch
|-
| Cherry MX Red
| 45 cN linear
|
|
|-
| Kailh Silver
| 50 cN spring* linear
| Has an early actuation (1.1mm vs 2mm)
|
|-
| Cherry MX Brown
| 45 cN bumpy
| While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
| Kailh Choc Red
| 50 cN spring* linear
|
| The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.<span id="adapt-a-keyboard-for-steno-use"></span>
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
ede978861cd55b09ef3c49515229359fda88e248
2240
2233
2024-06-23T22:22:28Z
Aerick
9
/* Which type of key switch should I choose? */
wikitext
text/x-wiki
== DIY writers specifically for Plover ==
Projects to build your own machine.
{| class="wikitable"
|-
! Product Name
! About
|-
| [https://mechwild.com/product/bb-steno/ MechWild BB Steno]
| <img alt="BB Steno" src="https://user-images.githubusercontent.com/7952620/202928180-c25d7641-1a4a-41b9-ba16-ea93e0bdddb4.png" width="300px" align="right" />
A barebones keyboard kit from MechWild. Comes with a PCB ($10) and optional microcontroller (+$8) and a few other parts; you supply the switches and keycaps.
|-
| [https://nolltronics.com/product/picosteno/ Picosteno]
| <img alt="Picosteno" src="https://nolltronics.com/wp-content/uploads/2023/02/Picosteno-Assembled-not-square-1024x644.png" width="300px" align="right" />
A full Steno kit from Nolltronics. Starting at $20 for the PCBs and mounting hardware and going up to $61 for everything you need, this is the cheapest board you can make!
|-
| [https://github.com/mike-ady/Stenokey Stenokey]
| <img alt="Stenokey" src="https://raw.githubusercontent.com/mike-ady/Stenokey/master/Documentation/Stenokey.png" width="300px" align="right" />
Stenokey is an open-source do-it-yourself stenographic keyboard project. It is aimed at makers with some electronics experience (soldering) and who own a 3D printer or who have a friend with a 3D printer.
|-
| [https://stenokeyboards.com/products/uni-v2-pcb The Uni v2 PCB]
| <img alt="The Uni v2 PCB" src="https://i.imgur.com/gtbh0MD.jpg" width="300px" align="right" />
The Uni v2 PCB, instructions in the description. Some prior experience is recommended. Only comes with a PCB and has pre-soldered diodes.
|-
| [https://github.com/ttempe/YASK Yet Another Steno Keyboard]
| <img alt="YASK" src="https://github.com/ttempe/YASK/raw/main/YASK_V1_V2_small.jpg" width="300px" align="right"/>
YASK is an easy-to-build open-source design for a steno keyboard. Simple, no 3D printing needed, also exists in angled & staggered version. Check out the [https://youtu.be/82yD0RMeEw8 build instructions]
|}
== Choosing a key switch ==
Choose a linear key switch with a light actuation force. The two most popular switches are the '''Kailh Choc Pink Pro''' and the '''Gateron Clear/White.'''
See: [[Steno key switches]]
== NKRO keyboards with an ortholinear layout ==
Keyboards with an “ortholinear” layout have the keys in straight columns. This is handy for steno, as it makes it easier to press two keys in a column with a single finger.
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| [https://deskthority.net/wiki/ErgoDox ErgoDox]
| ErgodoxEZ, Massdrop, FalbaTech, others
| USB
| The ErgoDox is a fairly high-end NKRO keyboard at $200, with an ortholinear layout. It has two separate halves, so you can angle them to suit you. You can order it with the Gateron White keys, which have an extremely light, 35 gram activation force. Read a [https://www.paulfioravanti.com/blog/starting-stenography-ergodox/ guide to Starting Stenography with an Ergodox by Paul Fioravanti].
|-
| [https://olkb.com/planck/ Planck]
| OLKB
| USB
| The Planck is a fully programmable NKRO keyboard with an ortholinear layout. It is 40% the size of a standard keyboard. Read a [https://didoesdigital.com/blog/build-your-own-steno-keyboard-its-easier-than-you-think/ guide to starting stenography with a Planck by DiDoesDigital]. <br />[[File:Planck.jpg|frameless|501x501px]]
|-
| [https://olkb.com/preonic/ Preonic]
| OLKB
| USB
| The Preonic is a fully programmable NKRO keyboard with an ortholinear layout. It is 50% the size of a standard keyboard.
|-
| [http://plover.stenoknight.com/2018/05/limited-time-offer-stenogherkins-at-cost.html Gherkin]
|
| USB
| The Gherkin is a fully programmable NKRO keyboard with an ortholinear layout. It is 30% the size of a standard keyboard.
|-
| [https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard Iris]
| Keebio
| USB
| The Iris is a cheaper and slightly smaller alternative to the ErgoDox. It is a fully programmable split NKRO keyboard with 56 keys. The firmware needs to be edited to enable either NKRO or Gemini PR. Available in PCB and pre-built.
|}
049508c6256781ab9769ffddd0fe2a433ae65300
DIY machines
0
1514
2232
2024-06-23T22:15:28Z
Aerick
9
Aerick moved page [[DIY machines]] to [[DIY writers]]
wikitext
text/x-wiki
#REDIRECT [[DIY writers]]
55d838b676eb78bc50d9deb32608b98d55324085
DIY writers
0
1515
2234
2024-06-23T22:16:38Z
Aerick
9
Aerick moved page [[DIY writers]] to [[DIY steno writers]]
wikitext
text/x-wiki
#REDIRECT [[DIY steno writers]]
0655fee0cf4982f58822edbc53ac9ddcd72a3a39
Out of production writers
0
1511
2235
2208
2024-06-23T22:17:50Z
Aerick
9
Aerick moved page [[Out of production machines]] to [[Out of production writers]]
wikitext
text/x-wiki
== Out-of-production Machines ==
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
cc64f1b7bcea2f8b1bc49666fc65810dbfd4ae0c
2237
2235
2024-06-23T22:18:04Z
Aerick
9
wikitext
text/x-wiki
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
62817bf9d9aa30ff898536b6083ebc5c6a475c20
Out of production machines
0
1516
2236
2024-06-23T22:17:50Z
Aerick
9
Aerick moved page [[Out of production machines]] to [[Out of production writers]]
wikitext
text/x-wiki
#REDIRECT [[Out of production writers]]
6551fa21918a72f5a7cb1f7973e3c8a0ac38bdf7
Supported hardware
0
10
2238
2227
2024-06-23T22:18:08Z
Aerick
9
/* What steno keyboard should I get? */
wikitext
text/x-wiki
= What steno writer should I get? =
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock!
If you are interested in making your own steno keyboard, take a look at [[DIY steno writers]].
== Commercially available hobbyist writers ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production writers]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
cab3fe66d427dcc196f1c69553bdffa1f9578078
2243
2238
2024-06-23T22:26:49Z
Aerick
9
wikitext
text/x-wiki
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
== What steno writer should I get? ==
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock!
If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]].
== Commercially available hobbyist writers ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production writers]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
0655dfbfbe37f25260fc2de3de648847ceb9f25e
2255
2243
2024-06-24T21:29:48Z
Aerick
9
/* add link to choosing a steno writer page */
wikitext
text/x-wiki
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
== What steno writer should I get? ==
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock!
If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]].
== Commercially available hobbyist writers ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
If you need to use steno on a device that you can't install Plover on, any keyboard compatible with [https://lim.au/#/software/javelin-steno Javelin (embedded steno)] would be your best choice.
See also: [[choosing a hobbyist steno writer]].
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production writers]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
06db877e039a6b009a3795274e8bf31a97f85003
2258
2255
2024-06-24T22:14:36Z
Aerick
9
/* revise explanation for choosing a hobbyist writer */
wikitext
text/x-wiki
This page covers the following machines that you can use with Plover:
# [[Supported Hardware#Dedicated machines designed for use with Plover|Commercially available hobbyist machines]]
# [[Supported Hardware#Stenotype Machines|Stenotype machines]]
# [[Supported Hardware#Standard keyboards|Standard computer keyboards]]
# [[Supported Hardware#Video game controllers|Video game controllers]]
== What steno writer should I get? ==
We recommend purchasing one of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. They're all really good, and the best one is whichever is in stock!
If you are interested in building your own steno keyboard, take a look at [[DIY steno writers]].
== Commercially available hobbyist writers ==
<!-- Group by brand (alphabetical), out of stock at bottom
-->
For most users, any of these writers are perfectly adequate! Choose one that's in stock and within your budget.
If you cannot run Plover on your device, intend to steno in a language that's not English, or want to exclusively use your steno writer for your computer tasks, see [[choosing a hobbyist steno writer]].
{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (January 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these machines with Plover, see [[setting up a hobbyist writer with Plover]].
See also: [[out of production writers]].
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
[[Category:Plover]]
9e1cde36036e34538c4a07676c352aff2ba24627
2260
2258
2024-06-24T23:37:53Z
Aerick
9
/* What steno writer should I get? */
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the [[types of steno hardware]] (writers/machines/keyboards) that Plover supports.
For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported Hardware# Stenotype machines|Professional stenotype machines]]
* [[Supported Hardware# Standard keyboards|Standard keyboards]]
* [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported Hardware# DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
9807c06700820c9e6b975a65c5b7404b4424cf25
2262
2260
2024-06-25T00:01:08Z
Aerick
9
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported Hardware# Stenotype machines|Professional stenotype machines]]
* [[Supported Hardware# Standard keyboards|Standard keyboards]]
* [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported Hardware# DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Setting up a video game controller with Plover|setting up and using a video game controller with Plover]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
2478566e84c411ae8ef1a40fb78fc6cf8c89d365
2263
2262
2024-06-25T00:02:52Z
Aerick
9
/* Video game controllers */
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported Hardware# Stenotype machines|Professional stenotype machines]]
* [[Supported Hardware# Standard keyboards|Standard keyboards]]
* [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported Hardware# DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
5657b10d1e1185ea4065d536e6f0e4d5608a3c0f
2270
2263
2024-06-25T00:10:52Z
Aerick
9
Aerick moved page [[Supported Hardware]] to [[Supported hardware]]: Title style
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported Hardware# Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported Hardware# Stenotype machines|Professional stenotype machines]]
* [[Supported Hardware# Standard keyboards|Standard keyboards]]
* [[Supported Hardware# Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported Hardware# DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
5657b10d1e1185ea4065d536e6f0e4d5608a3c0f
2274
2270
2024-06-25T00:12:03Z
Aerick
9
Fix links after redirect change
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.<br><br>'''Stock status''' (June 2024): Out of stock [https://softhruf.love/products/soft-hruf-erl (source)]
|No
| $138
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
827fdffab706755c6d6014b4456e2d48f4a5eaf8
Steno key switches
0
1517
2239
2024-06-23T22:20:03Z
Aerick
9
Created page with "Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch. The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 gra..."
wikitext
text/x-wiki
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
!How many keys are in the average chord?
!
|-
|1: 23
2: 221
3: 1115
4: 3247
5: 6168
6: 7820
7: 7293
8: 5069
9: 2707
10: 1126
11: 331
12: 90
13: 21
14: 3
15: 1
|<img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
!Switch
!Stat
!Note
!Machines
|-
|Kailh Choc Pink Pro
|20 cN linear
|The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
|All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
|Gateron Clear / White
|35 cN linear
|A popular stock option available on the market
|All StenoKeyboards boards and the TinyMod use this switch
|-
|Matias Red
|35 cN linear
|Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
|SOFT/HRUF uses this switch
|-
|Cherry MX Red
|45 cN linear
|
|
|-
|Kailh Silver
|50 cN spring* linear
|Has an early actuation (1.1mm vs 2mm)
|
|-
|Cherry MX Brown
|45 cN bumpy
|While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
|Kailh Choc Red
|50 cN spring* linear
|
|The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
8d2b6f009b87feabb9508e20b66f8a3bfdb3374a
2241
2239
2024-06-23T22:23:04Z
Aerick
9
wikitext
text/x-wiki
Due to how multiple keys must be pressed simultaneously, there are two properties that are useful to have in a mechanical keyboard switch for steno: a '''light actuation force''' on a '''linear''' switch.
The light actuation makes it easier on your hands. For a chord like <code>TKPWHRAOEUGD</code> (gliding), you are hitting 8 keys with your left hand. That means that whatever switch force you need to depress one key, you have to push 8-times as much. For a 80cN (~80 grams, ~2.9 oz) switch, that’s 640cN (~640g, ~22.6 oz). '''For this reason, your wrists will have a much easier time working with your machine if its actuation force is as light as possible.'''
{| class="wikitable"
!How many keys are in the average chord?
!
|-
|1: 23
2: 221
3: 1115
4: 3247
5: 6168
6: 7820
7: 7293
8: 5069
9: 2707
10: 1126
11: 331
12: 90
13: 21
14: 3
15: 1
|<img src="https://i.imgur.com/77sH9t0.png" width="500px" />
|}
The linearity is recommended because it’s been found that the tactile feedback that one gets from an individual switch is not as useful when you are receiving 4-10 of those feedbacks at once. The brain just doesn’t process all the fingers’ feedback in a useful manner. And since the bump usually requires a small addition to the actuation force, we recommend keeping it linear and simple.
Professional steno machines, historically, always bottomed out (meaning the keys are pressed until they can no longer travel; the bottom.) Newer machines use more complicated mechanisms for detecting key travel, often using magnets and the hall effect to determine where the key is, allowing for customizable actuation points. The typical force required for a modern steno machine is between '''10cN and 20cN''', with some extremes on either end for personal preference. The travel of a typical lever steno machine is usually between '''2mm and 30mm'''. The lower end is found in machines like the LightSpeed (nonlever), where the higher end is around the maximum that you can configure a lever machine to stroke.
Most of the mechanical switches have a 2mm actuation point and 4mm travel/bottoming out, but some community members have found that “speed switches” with an earlier actuation point (usually 1.1-1.4mm) are better for steno due to their increased sensitivity.
{| class="wikitable"
!Switch
!Stat
!Note
!Machines
|-
|Kailh Choc Pink Pro
|20 cN linear
|The lightest stock option available, though the reduced travel distance makes it feel comparatively heavier
|All Nolltronics boards and the Starboard use this switch
|-
|Kailh Choc Nocturnal
|20 cN linear, silent
|
|
|-
|Gateron Clear / White
|35 cN linear
|A popular stock option available on the market
|All StenoKeyboards boards and the TinyMod use this switch
|-
|Matias Red
|35 cN linear
|Feels heavier than 35 cN switches due to having a “flat” force curve. Matias also has a different stem from Cherry
|SOFT/HRUF uses this switch
|-
|Cherry MX Red
|45 cN linear
|
|
|-
|Kailh Silver
|50 cN spring* linear
|Has an early actuation (1.1mm vs 2mm)
|
|-
|Cherry MX Brown
|45 cN bumpy
|While not ideal compared to other options, this switch is still a better choice than blues, blacks, and other Cherry switches
|
|-
|Kailh Choc Red
|50 cN spring* linear
|
|The Georgi uses this switch
|}
* The Kailh silvers and Choc reds use a spring that would cause a 50 cN actuation point at 2mm, but since they actuate earlier (1.1mm), the force required is nearer to 35 cN.
There are other methods to decrease actuation force for even these switches. This includes:
* Putting SPRiT 15g Choc springs into the Kailh Choc Pink Pro
* Putting the Gateron Clear’s 35 cN spring into the Kailh Silver for its earlier actuation point.
* Trimming the springs of a linear switch by several mm to reduce force.
* Using an aftermarket spring with lower forces, such as a prototype 20 cN spring that isn’t yet released to the wider market.
* Removing the leaf-spring (not the primary spring) in the Matias Red switch to make the force curve less flat.
dade7a067bf95bf10527fcf296bff0b203273725
Beginner's Guide
0
4
2242
2229
2024-06-23T22:25:47Z
Aerick
9
/* Write “Hello World” */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. A dedicated steno keyboard will make it significantly easier to reach 120+ WPM, but we would not recommend buying one until you are sure you want to dedicate the time to learn steno.
<!--T:13-->
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant subsection using the links below:
* [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]]
* [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]]
* [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]]
* [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]]
* [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
<!--T:14-->
<span id="use-a-standard-qwerty-keyboard"></span>
=== Use a standard QWERTY keyboard ===
<!--T:15-->
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to six simultaneous key presses (and some combinations may only yield two). To work around the lack of NKRO, you have two options: arpeggiate, or roll your strokes.
<!--T:16-->
<span id="arpeggiate"></span>
==== Arpeggiate ====
<!--T:17-->
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a chord until after you have pressed the spacebar. This way, you can press fewer keys at a time.
<!--T:18-->
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
<!--T:19-->
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
<!--T:20-->
<span id="rolling-your-strokes"></span>
==== Roll your strokes ====
<!--T:21-->
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
<!--T:22-->
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|None|Thumb|Demonstration of rolling."]]
<!--T:23-->
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it’s working]].
<!--T:24-->
<span id="use-an-n-key-rollover-nkro-qwerty-keyboard"></span>
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
<!--T:25-->
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
<!--T:26-->
To test if your keyboard has NKRO, you can go to an [https://keyboardchecker.com/ online keyboard checker] and press down a bunch of keys all at once and see if they all light up.
<!--T:27-->
Be sure to try the example later in this page to [[#confirm-its-working|confirm it’s working]].
<!--T:28-->
<span id="which-nkro-keyboard-should-i-get"></span>
==== Which NKRO keyboard should I get? ====
<!--T:29-->
We only recommend purchasing an NKRO keyboard if you cannot purchase a dedicated hobbyist writer. NKRO keyboards are less expensive, and also can be used as regular keyboards if you change your mind and decide not to learn steno. Generally, searching for “NKRO” or “anti-ghosting” keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
<!--T:30-->
* See: [[using a standard keyboard with Plover]]
<!--T:35-->
<span id="use-a-machine-designed-for-use-with-plover"></span>
=== Use a machine designed for use with Plover ===
<!--T:36-->
Various steno enthusiasts are making and selling writers designed for use with Plover:
<!--T:37-->
* [https://nolltronics.com/product/ecosteno/ Ecosteno]
* [https://nolltronics.com/product/multisteno/ Multisteno]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
* [https://softhruf.love/products/soft-hruf-erl Splitography]
* [https://www.stenography.store/ Starboard]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod]
* [https://stenokeyboards.com/ The Uni]
<!--T:38-->
More information: [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]].
<!--T:39-->
<span id="use-a-professional-stenography-machine"></span>
=== Use a professional stenography machine ===
<!--T:40-->
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
<!--T:41-->
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
9622a25871d6417f76104121f1e5e2c79f0db912
2244
2242
2024-06-23T22:35:21Z
Aerick
9
/* Connect a compatible keyboard or stenography machine */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported Hardware|commercially available hobbyist writer]].<span id="rolling-your-strokes"></span>
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
<span id="confirm-its-working"></span>
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
5bf0ac054b66bfe413d869341462028bc086a9ea
2245
2244
2024-06-23T22:37:06Z
Aerick
9
/* Connect a compatible keyboard or stenography machine */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported Hardware#What steno writer should I get?|commercially available hobbyist writer]].
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
It’s time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover’s built-in tools. See the [[Learning Stenography|Learning Resources]].
<!--T:71-->
<span id="which-steno-theory-should-you-learn"></span>
=== Which steno theory should you learn? ===
<!--T:72-->
There are many steno theories that encompass the rules you use to convert words to steno strokes.
<!--T:73-->
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
<!--T:74-->
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
<!--T:75-->
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
<!--T:76-->
'''We recommend learning either Plover theory or Lapwing theory.'''
<!--T:77-->
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
<!--T:79-->
<span id="personalizing-your-dictionary></span>
== Personalizing your dictionary ==
<!--T:80-->
English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
b5d8d4182e1d50b9562b9402384d0a90affd651d
File:Key toppers.jpg
6
1518
2246
2024-06-23T22:48:17Z
Aerick
9
wikitext
text/x-wiki
key toppers
04346a934d847d4b58d3ba1d0a38f1f93d742017
File:3D printed key toppers1.jpg
6
1520
2248
2024-06-23T22:53:36Z
Aerick
9
wikitext
text/x-wiki
3D printed key toppers
6aad003dbbd5f178a33c23958d4b89aad9ebc4f6
File:Stenotoppers.jpg
6
1521
2249
2024-06-23T22:55:36Z
Aerick
9
wikitext
text/x-wiki
Stenotoppers
d427455e15b32ae1e2e69721d9bbd9dd2d415f9c
File:Aerick outemu stenotoppers.png
6
1522
2250
2024-06-23T22:57:00Z
Aerick
9
wikitext
text/x-wiki
Aerick outemu stenotoppers
ac94ce566f6484314eaaebb8cf1cd2ae867e420c
Using a standard keyboard with Plover
0
1512
2251
2221
2024-06-23T22:57:33Z
Aerick
9
/* Key toppers */
wikitext
text/x-wiki
If you don’t have a steno machine, you can use a standard keyboard. However, most computer keyboards do not work very well with Plover for several reasons:
* The staggered layout makes it difficult to press multiple keys at once.
* Standard keyboards often have heavy switches, hindering the ability to press multiple keys simultaneously.
* The majority of standard keyboards do not have N-key rollover (NKRO).
The first two points are inherent in pretty much all standard keyboards. However, some keyboards do have NKRO, and this is desirable for steno.
== NKRO ==
NKRO stands for '''N-Key Rollover'''. This is a feature of some keyboards whereby you can press as many keys as you want simultaneously, and they will all register. Typical keyboards stop working correctly when you press somewhere between 4 and 7 keys at once. For more information, see the [https://en.wikipedia.org/wiki/Rollover_(key)#n-key_rollover Wikipedia entry about NKRO]. Compared to those without, keyboards with NKRO are a little easier to learn on. It is less frustrating to get started learning stenography.
=== How do I know if my keyboard has NKRO? ===
In general, most keyboards will not be NKRO. “Gaming” and mechanical keyboards are most likely to have NKRO, while budget as well as laptop keyboards are unlikely to have NKRO.
The easiest way to test for NKRO is to visit https://keyboardchecker.com/ and press several keys all at once to see if they register. If your keyboard has NKRO, you will be able to press multiple keys with your palm and they will all light up as green on the website. If your keyboard does not have NKRO, several keys will not light up on the website.
=== Should I buy an NKRO keyboard? ===
In the past, people have recommended purchasing an NKRO keyboard to learn steno. While an NKRO keyboard can be quite inexpensive (as little at $30), we do not recommend this if you are sure about learning steno. The advantage of purchasing an NKRO keyboard is that it can still be useful as a regular keyboard if you end up changing your mind about learning stenography.
That being said, if you are interested in purchasing an NKRO keyboard to make your initial Plover learning experience a little bit more enjoyable, you can shop online for "NKRO keyboards", or try some at a computer store. Some keyboards have been known to falsely advertise NKRO, but this has been quite rare.
== What if my keyboard is not capable of NKRO? ==
If your keyboard is not capable of NKRO, but still want to give Plover a try, you can arpeggiate/roll the strokes.
=== Arpeggiate ===
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you’ve finished. Plover will not process a stroke until after you have pressed the spacebar. This way, you can press fewer keys at a time.
See below for a demonstration of using the arpeggiate function:
[[File:Keyboard-arpeggiate.gif|alt=Demonstration of the arpeggiate function.|center]]
To enable arpeggiate, open Plover’s main window and press <code>Configure</code>. Under “Machine” enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
[[File:Plover-arpeggiate-option.png|thumb|center]]
=== Roll your strokes ===
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
See below for a demonstration of rolling:
[[File:Keyboard-roll.gif|alt=Demonstration of rolling."|center]]
== Adapting a standard keyboard for use with Plover ==
=== Top row key cap flip ===
On most mechanical keyboards, it is possible to take off the top row of key caps and flip them. This brings the two keys in a column closer together.
[[File:Mech keyboard with top row flipped.png|alt=Mechanical keyboard with top row flipped for steno use|center|thumb|711x711px|Flipping the top row of keys can make it easier it press two keys in a column simultaneously.]]
=== Key toppers ===
You can glue key toppers to the existing keys to make them easier to press. You can buy laser-cut key toppers from the [http://plover.deco-craft.com/ Plover Store], and you can also make your own key toppers out of plastic, cardboard, or even coins.
[[File:3D printed key toppers1.jpg|alt=3D printed key toppers glued on a keyboard.|center|thumb|436x436px|3D printed key toppers glued on a keyboard.]]
[[File:Key toppers.jpg|center|thumb|368x368px|Key toppers from the Plover store.]]
=== Key caps ===
If you have a mechanical keyboard, it is likely your keys have a [https://deskthority.net/wiki/Cherry_MX Cherry MX stem] and will work with custom key caps. You can replace the existing keycaps on your keyboard with different keycaps, to improve the layout for stenoing.
* [https://cemrajc.github.io/stenotoppers/ StenoToppers] is a 3D printed keycap set designed by Jason Cemra. It aligns the rows, raises the keys, and reduces the keycap tapering, slant and gap. The 3d model (.stl) files are available on Github. If you have access to a 3D printer, you can download .stl files and print them for a negligible cost. Otherwise, you would need to use a 3D printing service.
[[File:Stenotoppers.jpg|center|thumb|585x585px]]
* [https://aerick.ca/steno/outemu-stenotoppers/ Aerick's Outemu StenoToppers] are a derivative of the original stenotoppers that work better on some keyboard switches.
[[File:Aerick outemu stenotoppers.png|alt=Aerick outemu stenotoppers|center|thumb|610x610px]]
* The [https://pimpmykeyboard.com/g20-blank-keycap-sets/ G20 keycap set] from Signature Plastics is a great set for steno, and will fit on an ErgoDox or other mechanical keyboard. The keys have a direction, so for optimal comfort, you should angle the top row of steno (<code>STPH...</code>) down, so that they are close to the bottom row (<code>SKWR...</code>)
* You can 3D-print a [https://github.com/morinted/stenomod_case steno-friendly keycap].
Keys that have little space between them are good for steno, because then you can hit two neighboring keys with one finger (which is frequently necessary).
e8428c864ede17a20bd9e3251636963a454fa52c
Troubleshooting issues
0
14
2252
2198
2024-06-23T23:08:04Z
Aerick
9
/* Plover not working on Wayland */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to set up your machine.
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== Plover not working on Wayland ===
Plover does not officially support Wayland. This is an issue with Wayland not having adequate tools to cover emulated keyboard input. However, there are a few workarounds that use other methods of keyboard emulation with varying degrees of success.
The [https://github.com/LilleAila/plover-uinput plover-uinput] plugin should work across all Wayland setups (including GNOME and KDE plasma), but relies on iBus for unicode characters. See the Wiki page on the [[plover-uinput]] plugin for more details.
61b4239f4641c3a51ea8554c5bf08afcb5cd87f3
Javelin
0
1523
2253
2024-06-23T23:20:44Z
Aerick
9
Created page with "Javelin is an embedded steno engine that can run in a keyboard's firmware. This allows the keyboard to directly translate the strokes to text, thereby bypassing the need to install Plover (or anything) on the host machine. All the dictionaries and translation occurs in the keyboard itself. Javelin allows for "plug and play stenography". It is compatible with the following hobbyist steno writers: * StarBoard * StenoKeyboards Asterisk * StenoKeyboards Polyglot * StenoKeyb..."
wikitext
text/x-wiki
Javelin is an embedded steno engine that can run in a keyboard's firmware. This allows the keyboard to directly translate the strokes to text, thereby bypassing the need to install Plover (or anything) on the host machine. All the dictionaries and translation occurs in the keyboard itself. Javelin allows for "plug and play stenography". It is compatible with the following hobbyist steno writers:
* StarBoard
* StenoKeyboards Asterisk
* StenoKeyboards Polyglot
* StenoKeyboards Uni
Javelin is also compatible with several DIY steno writers.
7bce9bef67d399044d8fab2a85a21e134feb5fc9
Style guide
0
1524
2254
2024-06-23T23:28:05Z
Aerick
9
Created page with "== Titles and headings == * Capitalize first word, otherwise follow sentence casing * Preserve proper nouns casing == Nouns == Follow how nouns are stylized on Wikipedia."
wikitext
text/x-wiki
== Titles and headings ==
* Capitalize first word, otherwise follow sentence casing
* Preserve proper nouns casing
== Nouns ==
Follow how nouns are stylized on Wikipedia.
2c5e4f66c5a1cb8290eaf29f40db891a2d823e45
Choosing a hobbyist steno writer
0
1525
2256
2024-06-24T21:39:53Z
Aerick
9
Created page with "For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate. However, if you intend to use Plover for languages other than English, or are intending to switch to steno full time, there are some important aspects to take into consideration. == Non-English language support == The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]..."
wikitext
text/x-wiki
For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate. However, if you intend to use Plover for languages other than English, or are intending to switch to steno full time, there are some important aspects to take into consideration.
== Non-English language support ==
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
If you decide to learn steno in a language requiring a larger layout, we recommend the following options:
* Nolltronics Multisteno
* StenoKeyboards Polyglot
== Using a steno keyboard exclusively ==
00bc5652415d2c4d59bff006647c29aadb55c181
2257
2256
2024-06-24T22:09:06Z
Aerick
9
wikitext
text/x-wiki
For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you:
* You cannot run Plover on your device
** Incompatible devices (Android and iOS devices)
** Insufficient permissions on your computer (work/school computer)
* You intend to steno in a language that's not English
* You will exclusively use your steno writer in your computer usage
== Javelin support ==
== Non-English language support ==
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
If you decide to learn steno in a language requiring a larger layout, we recommend the following options:
* Nolltronics Multisteno
* StenoKeyboards Polyglot
== Using a steno keyboard exclusively ==
8bbfe69534843b454783cc5aad32780958778dba
2259
2257
2024-06-24T22:51:18Z
Aerick
9
/* rewrite page add table*/
wikitext
text/x-wiki
LiFor most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you:
* You cannot run Plover on your device
** Incompatible devices (Android and iOS devices)
** Insufficient permissions on your computer (work/school computer)
* You intend to steno in a language that's not English
* You will exclusively use your steno writer in your computer usage
== Considerations ==
=== Javelin support ===
[[Javelin]] is a steno engine that can be embedded within a keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover on your device.
=== Non-English language support ===
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
=== Using a steno writer exclusively ===
It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD.
== Table summary ==
{| class="wikitable sortable"
!Product Name
!Javelin Support
!Non-English language support
!QWERTY layer / Extra keys
|-
|[https://stenomod.blogspot.com/ TinyMod]
|No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/ecosteno/ Ecosteno]
| rowspan="2" |No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/multisteno/ Multisteno]
|Yes
|Yes
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |Yes
|Limited to WSI
|No
|-
|[https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
|Limited to WSI
|No
|-
|[https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
|Yes
|Yes
|-
|[https://www.stenography.store/ Starboard]
|Yes
|Limited to WSI
|No
|-
|[https://softhruf.love/ SOFT/HRUF Splitography]
|No
|Yes
|Yes
|}
7e84b95388000731f87c20ccdb02b5438412db7a
Steno hardware terminology
0
1526
2261
2024-06-25T00:00:48Z
Aerick
9
Created page with "There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page. == Stenography writer == Often shortened as "steno writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the St..."
wikitext
text/x-wiki
There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page.
== Stenography writer ==
Often shortened as "steno writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the [[StenoKeyboards Uni]]), devices that use capacitive touch sensors (like the [[StenoKeyboards Asterisk]]), and even [[video game controllers]].
== Stenography machine ==
Often shortened as "steno machine", this term is sometimes used in two different ways. It can exclusively refer to professional steno writers only (such as the [[Luminex]] and [[LightSpeed]]). However, for most people in the Open Steno community, it is synonymous with the term "stenography writer" as defined above. Due to the ambiguity, this term is not preferred throughout this Wiki.
== Stenography keyboard ==
Often shortened as "steno keyboard" or "steno board", this name is used for hobbyist steno writers (like the [[Nolltronics Multisteno]] or [[StenoKeyboards Asterisk]]).
== Stenotype machine ==
This term (also shortened as "stenotype") is rarely used to describe a hobbyist steno writer. It is more often used for professional steno writers.
21b6e2dbe640cf79483b473cad9c9175f1791573
2267
2261
2024-06-25T00:05:43Z
Aerick
9
wikitext
text/x-wiki
There are multiple different names for stenographic input devices. Some terms are preferred over others, and there is not always a consensus for the definitions listed in this page.
== Stenography writer ==
Often shortened as "steno writer" or just "writer", this refers to any kind of stenographic input device. It includes devices with levers such as the [[Stentura protege]] and [[Luminex]], hobbyist devices that use keyboard switches (such as the [[Nolltronics Multisteno]] and the [[StenoKeyboards Uni]]), devices that use capacitive touch sensors (like the [[StenoKeyboards Asterisk]]), and even [[video game controllers]].
== Stenography machine ==
Often shortened as "steno machine" or just "machine", this term is sometimes used in two different ways. It can exclusively refer to professional steno writers only (such as the [[Luminex]] and [[LightSpeed]]). However, for most people in the Open Steno community, it is synonymous with the term "stenography writer" as defined above. Due to the ambiguity, this term is not preferred throughout this Wiki.
== Stenography keyboard ==
Often shortened as "steno keyboard", "steno board", or just "board", this name is used for hobbyist steno writers (like the [[Nolltronics Multisteno]] or [[StenoKeyboards Asterisk]]).
== Stenotype machine ==
This term (also shortened as "stenotype") is rarely used to describe a hobbyist steno writer. It is more often used for professional steno writers.
8e4023ad63e0df2db8e48a695378caebcb13550e
Video game controllers
0
1509
2264
2206
2024-06-25T00:03:36Z
Aerick
9
Aerick moved page [[Setting up a video game controller with Plover]] to [[Video game controllers]]
wikitext
text/x-wiki
= Video Game Controller =
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
10313d816563d61734e877e05ed67932c95ebf19
2266
2264
2024-06-25T00:03:46Z
Aerick
9
wikitext
text/x-wiki
It is possible to use a video game controller with Plover by installing the [https://github.com/tadeokondrak/plover_controller Plover Controller] plugin. [[Plugins|Please use the built-in Plover plugins manager to install this plugin.]] This is one of the cheapest options to get you started! If you don't have a USB or bluetooth controller lying around, you can find a used one very cheap, and you can even buy new ones for a great price. <blockquote>'''Note: as per the [https://github.com/tadeokondrak/plover_controller project's README], there may be issues using it with macOS.'''</blockquote>
== Troubleshooting ==
Most issues can be resolved by following the [https://github.com/tadeokondrak/plover_controller?tab=readme-ov-file#mapping-buttons mapping instructions] for the Plover Controller plugin.
== Usage ==
The diagram below shows where all of the corresponding keys are located. This layout closely resembles the standard Ward Stone Ireland stenography layout, so it can be used with a standard theory, like Plover theory or Lapwing theory.
=== Skipping Joystick Keys with the Reverse Steno Order Method ===
The diagram also shows how stick movements that move in the opposite direction of [https://plover.wiki/index.php/Glossary#Steno_Order steno order] will skip the keys in-between. For example, to to write a word starting with "th", such as the word, "this," you would want to select <code>T-</code> and <code>H-</code> without the <code>P-</code> in-between. Moving the left stick clockwise from <code>T-</code> to <code>H-</code> would output <code>TPH-</code>, which is not what we want. To get the output of <code>TH-</code>, you would move counter-clockwise from <code>H-</code> to <code>T-</code>. However, reverse steno order does not always mean counter-clockwise. Another example is the word <code>WHA</code> -> "what,". To output <code>WH-</code> , you would want to move clockwise from <code>H-</code> to <code>W-</code>
=== Skipping Joystick Keys with the Opposite Direction Overlap Method ===
There is also a method to skip keys by moving the stick opposite the initial direction over keys you want to exclude.
For example, the word <code>KHRUB</code> -> "club" can be written by moving the left joystick clockwise from H to K, and without releasing, move the stick back to <code>W-</code> to exclude <code>W-</code>. This will output <code>KHR-</code>, and with the addition of <code>U</code> and <code>-B</code>, you get "club".
[[File:Plover controller diagram.png|alt=plover_controller diagram|frameless|1103x1103px]]
c2a7a8f236e36aa1af41a27327266aec00493f00
Setting up a video game controller with Plover
0
1527
2265
2024-06-25T00:03:36Z
Aerick
9
Aerick moved page [[Setting up a video game controller with Plover]] to [[Video game controllers]]
wikitext
text/x-wiki
#REDIRECT [[Video game controllers]]
82682d158118d7daa74c86755810496f465864f7
Talk:Setting up your writer with Plover
1
1528
2268
2024-06-25T00:08:53Z
Aerick
9
Created page with "Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though."
wikitext
text/x-wiki
Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though.
68271b2ac3189648306b99f24c126a27616f8b1f
2269
2268
2024-06-25T00:09:08Z
Aerick
9
wikitext
text/x-wiki
= Page layout =
Instead of headers and links, maybe make it like a category page on Wikipedia: https://en.wikipedia.org/wiki/Category%3AApril . Not sure how to do that here, though.
d6447c11d9bdcd4b5b4f1f9f5c963b1931df6591
Supported Hardware
0
1529
2271
2024-06-25T00:10:52Z
Aerick
9
Aerick moved page [[Supported Hardware]] to [[Supported hardware]]: Title style
wikitext
text/x-wiki
#REDIRECT [[Supported hardware]]
48628b0fdc17ce8aa4de307fcc51b3f08bd8a41b
Talk:Supported hardware
1
1493
2272
2168
2024-06-25T00:10:52Z
Aerick
9
Aerick moved page [[Talk:Supported Hardware]] to [[Talk:Supported hardware]]: Title style
wikitext
text/x-wiki
== Professional machines ==
Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once.
== NKRO keyboards ==
Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"?
912671266754d9956ec42796f7c9040c4a7b2af0
2275
2272
2024-06-25T00:17:22Z
Aerick
9
wikitext
text/x-wiki
== Professional machines ==
Would it make sense to create a page for each machine and have the table just link the instructions? For less tech-savvy people especially, I think a whole page dedicated to a machine(s) with pictures and lots of details would be very helpful. Of course, we don't have to create all of them all at once.
I've decided we should just create a page for every single writer Wikipedia style. Each page can have a set up heading, and we can link the relevant set up page to it (make a new one if necessary called "Setting up X steno writer with Plover").
== NKRO keyboards ==
Do we really need to list every single keyboard that supports NKRO (or even the ones that don't)? Many of them aren't even in production anymore, and with a million different brands out there, I don't think it's worthwhile to keep it up to date. I also haven't heard of false advertising really being an issue for NKRO; maybe we can just list a few that are relatively easy to get, and keep the advice about searching "NKRO keyboard"?
Field and I decided to move this to a new page. Most users aren't thinking about buying an NKRO keyboard, so the other concerns are low priority.
== Commercially variable writers and stenotypes ==
Both video game controller, and NKRO keyboards, and DIY machines are in their separate pages. Should the hobbyist machines and the stenotypes also have their own separate page?
If so, this page can basically just be a category page. But that is maybe not the most user friendly. We could replace the supported hardware link in the sidebar with "Choosing a steno writer" and use that as the user oriented guide.
cdd0624e333c9bbf2820740b795a94ef3c4810f5
Talk:Supported Hardware
1
1530
2273
2024-06-25T00:10:52Z
Aerick
9
Aerick moved page [[Talk:Supported Hardware]] to [[Talk:Supported hardware]]: Title style
wikitext
text/x-wiki
#REDIRECT [[Talk:Supported hardware]]
371e2a32faaec9f2050e8adeb6f8277d3286cf24
Wayland
0
1531
2276
2024-06-26T00:16:23Z
Aerick
9
Created page with "[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover. Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions..."
wikitext
text/x-wiki
[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover.
Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available.
== Switch to X11 ==
This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>").
Here are two tutorials for the two most popular Linux distributions:
* [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu]
* [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora)
== Plover plugins ==
There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include:
* <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended)
* <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code>
* <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code>
<code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME.
See the wiki page for set up instructions: [[plover-uinput]].
=== Plover on Xwayland ===
Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems.
If this occurs, run the following command before opening Plover:
<pre>
xhost +si:localuser:$USER
</pre>
To run this command automatically when opening Plover, see: [[AppImage integration#Xwayland hack|AppImage integration]]
== Javelin ==
c27292b95598899ea4f9d600a8f5660a7012ee61
Plover-uinput
0
1503
2277
2192
2024-06-26T00:18:03Z
Aerick
9
/* Change code to use <pre> blocks */
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Fedora 40 GNOME 46
== Installation and setup ==
=== Plugin installation ===
The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually.
# Navigate to the folder containing the AppImage.
# Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre>
#* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage.
# Restart Plover.
# Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>.
For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]].
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<pre>sudo usermod -aG input $USER</pre>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre>
For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>.
{{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify <code>ibus</code> is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
3aee44933e78cac831947e7fc626257a5c04dfd1
2278
2277
2024-06-26T00:18:53Z
Aerick
9
/* Background */
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Debian 12 GNOME 43
* Fedora 40 GNOME 46
== Installation and setup ==
=== Plugin installation ===
The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually.
# Navigate to the folder containing the AppImage.
# Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre>
#* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage.
# Restart Plover.
# Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>.
For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]].
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<pre>sudo usermod -aG input $USER</pre>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre>
For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>.
{{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify <code>ibus</code> is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
7e593235516dc268a31f0f32ada01cecae0e7752
2279
2278
2024-06-26T00:19:18Z
Aerick
9
/* Troubleshooting */
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Debian 12 GNOME 43
* Fedora 40 GNOME 46
== Installation and setup ==
=== Plugin installation ===
The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually.
# Navigate to the folder containing the AppImage.
# Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre>
#* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage.
# Restart Plover.
# Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>.
For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]].
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<pre>sudo usermod -aG input $USER</pre>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre>
For full Unicode support (emoji, accented letters, etc), install <code>ibus</code> or <code>fcitx5</code>.
{{Info|text=Distributions running GNOME already have <code>ibus</code> installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify ibus is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
38fc93c8eda44be91534601e7851055201a2cfb5
2280
2279
2024-06-26T00:19:47Z
Aerick
9
/* Installation and setup */
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Debian 12 GNOME 43
* Fedora 40 GNOME 46
== Installation and setup ==
=== Plugin installation ===
The <code>plover-uinput</code> plugin is not in the plugins manager and has to be installed manually.
# Navigate to the folder containing the AppImage.
# Run the following command: <pre>./plover-4.0.0rc2+6.g53c416f-x86_64.AppImage -s plover_plugins install plover-uinput</pre>
#* Note that the executable may be different if you're running a different version of Plover, or if you're not using the AppImage.
# Restart Plover.
# Go to <code>Configure → Plugins</code> and check the box next to <code>plover-uinput</code>.
For more detailed installation instructions, see the page on [[Plugins#Linux|manually installing plugins]].
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<pre>sudo usermod -aG input $USER</pre>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre>
For full Unicode support (emoji, accented letters, etc), install the <code>ibus</code> or <code>fcitx5</code> package.
{{Info|text=Distributions running GNOME already have the <code>ibus</code> package installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify ibus is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
25fd0f13947b7fcea1a4093ff1dde296ebbd117b
Installation Guide
0
8
2281
2191
2024-06-26T01:28:51Z
Aerick
9
/* change wayland link and template to warning */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
== Allow Access to Serial Ports ==
<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===
<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up my machine == <!--T:27-->
<!--T:28-->
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. Please check the [[Supported_Hardware|Supported Hardware page]] to find instructions specific to your machine.<span id="other-installation-methods"></span>
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
2cfa84e5fa14e0cec6825e16d6205a8e455787cf
2297
2281
2024-06-26T21:55:20Z
Aerick
9
fix headings, link relevant page for writer setup
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
<!--T:12-->
{{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
=== Allow Access to Serial Ports ===<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up your writer == <!--T:27-->
<!--T:28-->
See: [[Setting up your writer with Plover]]
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
9933a22e6af0457ef4b6a1a2ad323a3001ea0114
2299
2297
2024-06-26T21:58:52Z
Aerick
9
/* Install Plover on Linux: typo */
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux.
<!--T:12-->
{{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
=== Allow Access to Serial Ports ===<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up your writer == <!--T:27-->
<!--T:28-->
See: [[Setting up your writer with Plover]]
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
891eb966172e18f298c85a074d314da5ab8f0c21
File:Xwayland error.png
6
1532
2282
2024-06-26T01:31:14Z
Aerick
9
wikitext
text/x-wiki
This error pops up on some systems with Xwayland.
540ea09762f78a82fd12375921b429d34a77e29a
Troubleshooting issues
0
14
2283
2252
2024-06-26T01:34:52Z
Aerick
9
/* add Xwayland error */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to set up your machine.
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== No authorization protocol error ===
If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix.
[[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]]
=== Plover not working on Wayland ===
Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover.
02d58f27355ddece195ea62ef8f86df0020d646f
2298
2283
2024-06-26T21:57:20Z
Aerick
9
/* Linux */
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to set up your machine.
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Permission denied with Gemini PR or TX Bolt ===
''See: [[Installation Guide#Allow Access to Serial Ports|allow access to serial ports]].''
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== No authorization protocol error ===
If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix.
[[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]]
=== Plover not working on Wayland ===
Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover.
a412e956c69e1e26ffdb2b0b4c3a9ad372b8e0c2
Wayland
0
1531
2284
2276
2024-06-26T01:55:43Z
Aerick
9
/* Plover on Xwayland */
wikitext
text/x-wiki
[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover.
Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available.
== Switch to X11 ==
This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>").
Here are two tutorials for the two most popular Linux distributions:
* [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu]
* [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora)
== Plover plugins ==
There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include:
* <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended)
* <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code>
* <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code>
<code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME.
See the wiki page for set up instructions: [[plover-uinput]].
=== Xwayland ===
Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems.
If this occurs, run the following command before opening Plover:
<pre>
xhost +si:localuser:$USER
</pre>
To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]]
== Javelin ==
499cf22a9782d8561ee789df338c81a6b48c69c6
2290
2284
2024-06-26T02:22:49Z
Aerick
9
/* Javelin */
wikitext
text/x-wiki
[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover.
Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available.
== Switch to X11 ==
This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>").
Here are two tutorials for the two most popular Linux distributions:
* [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu]
* [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora)
== Plover plugins ==
There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include:
* <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended)
* <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code>
* <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code>
<code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME.
See the wiki page for set up instructions: [[plover-uinput]].
=== Xwayland ===
Many applications do not work natively on Wayland, and require Xwayland to run. Plover will sometimes refuse to open on Xwayland systems.
If this occurs, run the following command before opening Plover:
<pre>
xhost +si:localuser:$USER
</pre>
To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]]
== Javelin ==
Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details.
1bd07cdd4772675bdaa900cc4f786c9d41db4d6d
2310
2290
2024-07-19T02:03:54Z
Aerick
9
/* Xwayland */
wikitext
text/x-wiki
[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover.
Linux distributions that use GNOME or KDE Plasma 6 use Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available.
== Switch to X11 ==
This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can finding instructions for your specific setup (try "switching to X11 on <Linux distro>").
Here are two tutorials for the two most popular Linux distributions:
* [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu]
* [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora)
== Plover plugins ==
There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include:
* <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended)
* <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code>
* <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code>
<code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME.
See the wiki page for set up instructions: [[plover-uinput]].
=== Xwayland ===
[[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|thumb|This error occurs on some systems that use xwayland.|408x408px]]Many applications do not work natively on Wayland, and require Xwayland to run. Plover may refuse to open on Xwayland systems and will produce the following error:
<pre>
Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n'
</pre>
If this occurs, run the following command before opening Plover:
<pre>
xhost +si:localuser:$USER
</pre>
To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]]
== Javelin ==
Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details.
6e28e5e63f6b1003052cd895ca8a0a7f62417ead
AppImage integration
0
1533
2285
2024-06-26T02:00:04Z
Aerick
9
Created page with "The only officially supported method for "installing" Plover on Linux is to use the AppImage. This file doesn't install anything, but is instead an executable file that can be placed anywhere in your system. Therefore, it may not show up in your applications menu (particularly if does not index arbitrary files on your computer). This can be addressed by using a <code>.desktop</code> file. == <code>Plover.desktop</code> == Follow these steps to add Plover to your applica..."
wikitext
text/x-wiki
The only officially supported method for "installing" Plover on Linux is to use the AppImage. This file doesn't install anything, but is instead an executable file that can be placed anywhere in your system. Therefore, it may not show up in your applications menu (particularly if does not index arbitrary files on your computer). This can be addressed by using a <code>.desktop</code> file.
== <code>Plover.desktop</code> ==
Follow these steps to add Plover to your applications menu:
# Move the Plover AppImage to your Desktop folder.
# Create a file at <code>~/.local/share/applications/plover.desktop</code> with the content below.
# Download the [https://raw.githubusercontent.com/openstenoproject/plover/main/plover/assets/plover-icon.svg Plover icon] and save it to your Desktop (optional)
# Log out and log back in.
<code>~/.local/share/applications/plover.desktop</code>
<pre>
[Desktop Entry]
Type=Application
Terminal=false
Exec=$HOME/Desktop/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage
Name=Plover
Icon=$HOME/Desktop/plover-icon.svg
Categories=Utility;Accessibility;
Comment=Stenographic Input Tool
Keywords=steno;input;keyboard;
X-Unity-IconBackgroundColor=#414F4C
</pre>
=== Automatically run Xwayland command ===
For running Plover under [[Wayland#Xwayland|Xwayland]], you will first have to create a script to run the command and start Plover.
<code>~/Desktop/plover-wayland.sh</code>
<pre>
#!/bin/bash
xhost +si:localuser:$USER
$HOME/Desktop/Plover-4.0.0rc+6.g53c416f-x86_64.AppImage
</pre>
Mark the script as executable by running <code>chmod +x ~/Desktop/plover-wayland.sh</code>.
Now, have the desktop file call the script instead of the Plover AppImage.
<code>~/.local/share/applications</code>
<pre>
[Desktop Entry]
Type=Application
Terminal=false
Exec=$HOME/Desktop/plover-wayland.sh
Name=Plover
Icon=$HOME/Desktop/plover-icon.svg
Categories=Utility;Accessibility;
Comment=Stenographic Input Tool
Keywords=steno;input;keyboard;
X-Unity-IconBackgroundColor=#414F4C
</pre>
ee07e0babb4830a748f0a82e516e6b7d6df0f220
Setting up a hobbyist writer with Plover
0
1504
2286
2199
2024-06-26T02:08:39Z
Aerick
9
Remove background header (moves background information to before table of contents)
wikitext
text/x-wiki
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
=== Autoreconnect ===
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page.
fddd00d1b5765734736c650dafa667c0c0528a85
2287
2286
2024-06-26T02:12:52Z
Aerick
9
/* Add information on refresh button and connected indicator */
wikitext
text/x-wiki
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
=== Function of the refresh button ===
Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He
=== Connected/disconnected indicator ===
Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu.
=== Resuming from sleep/disconnect ===
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Autoreconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with <code>[https://pypi.org/project/plover-auto-reconnect-machine/ plover-auto-reconnect-machine]</code> plugin, which can be installed via the [[Plugins#How to Install Plugins|plugins manager]]. For more details, see the [[auto reconnect]] page.
98c8269046de7b624ee29dd341393af673c99c62
2288
2287
2024-06-26T02:14:40Z
Aerick
9
/* Clean up links in auto reconnect section, rename heading */
wikitext
text/x-wiki
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
=== Function of the refresh button ===
Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He
=== Connected/disconnected indicator ===
Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu.
=== Resuming from sleep/disconnect ===
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Auto reconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with a plugin. See the wiki page on [[auto reconnect]].
e68988190204994f1f69f7e0a177f326b1aba19a
2300
2288
2024-06-26T21:59:58Z
Aerick
9
add note on serial port permissions on Linux
wikitext
text/x-wiki
Hobbyist machines use serial protocols to talk to Plover. This means you can have a regular keyboard plugged in for normal typing, and a steno machine plugged in at the same time. Plover will only capture the steno machine input. By default, all hobbyist steno keyboards use a protocol called Gemini PR. Setting it up with Plover is a little involved, especially for the first time.
For Linux users, ensure that you have [[Installation Guide#Allow Access to Serial Ports|access to serial ports]].
== Video summary ==
The following narrated video goes over the main method and trial and error method described below:
<youtube>2tp_hSVCKN8</youtube>
== Main method ==
This method involves determining the serial port for Plover to listen to.
# In Plover's main window, go to <code>Configure → Machine</code> and change the machine to Gemini PR.
# With your machine unplugged, press the <code>Scan</code> or <code>Refresh</code> button.
#* Take note of the options that are listed in the Port drop down menu.[[File:Machine tab Gemini PR, refresh, and drop down options highlighted.png|alt=machine tab Gemini PR, refresh, and drop down options highlighted|center|frame|Steps 1 and 2.]]
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Open the <code>Port</code> drop down menu.
#* If you see your device name show up, select it.
#* If you only see generic names, select the option that was not present in step 2. [[File:Machine tab with drop down menu and COM3 highlighted.png|alt=machine tab with drop down menu and COM3 highlighted|none|thumb|COM3 wasn't present earlier, so it is the steno machine that was just plugged in.]]
# Press <code>Apply</code> and <code>OK</code>
# Test that your machine is working
#* Open the paper tape (<code>Tools → Paper tape</code>)
#* Press some keys on your machine
#* Verify that they show up in the paper tape
== Trial and error method ==
Alternatively, after pressing the <code>Scan</code> or <code>Refresh</code> button with your machine plugged in, you can simply try each option in the <code>Port</code> drop down menu. This is useful if there are only a few options to try.
# In Plover, open <code>Configure → Machine</code> and change the machine to Gemini PR.
# Plug in your machine.
# Press the <code>Scan</code> or <code>Refresh</code> button.
# Select the first option in the <code>Port</code> drop down menu.
# Press <code>Apply</code> and <code>OK</code>
# Open the paper tape and press some keys on your machine.
#* If you see output in the paper tape, you are done.
#* If nothing shows up, repeat steps 4 and 5, but with a different option selected in the <code>Port</code> drop down menu.
== Serial protocol limitations ==
=== Function of the refresh button ===
Pressing the <code>Refresh</code>/<code>Scan</code> button merely makes Plover search for new devices—it does not necessarily select the correct device. This is why the process of connecting a writer to Plover is a little tricky. He
=== Connected/disconnected indicator ===
Plover will report that it is "connected" to a device, but this may not necessarily be the correct one. If Plover is not receiving the key presses on a keyboard (despite saying "connected"), this means that the selected port is wrong. Go back to <code>Configure → Machine</code> and try a different port in the drop down menu.
=== Resuming from sleep/disconnect ===
If you sleep and wake up your computer, or you unplug and replug your machine, your steno keyboard will disconnect. You can try pressing the <code>Reconnect Machine</code> button.
[[File:Plover main window with reconnect machine button highlighted.png|alt=Plover main window with reconnect machine button highlighted|center|frame|Reconnect machine button.]]
If that does not work, it is likely that the serial port has changed and you will have to redo the above steps again.
==== Auto reconnect ====
On some computers (particularly Linux and macOS), the serial port will generally not change when the steno machine is unplugged and plugged back in. If this is the case, you can set up autoreconnect with a plugin. See the wiki page on [[auto reconnect]].
154e3cb3f9418ef52fa22c54221b365831a105b7
Auto reconnect
0
1499
2289
2194
2024-06-26T02:16:18Z
Aerick
9
/* rename background heading, move background info to above table of contents */
wikitext
text/x-wiki
For steno writers that use serial protocols such as Gemini PR or TX Bolt, Plover requires the user to manually press the reconnect machine button if the writer is unplugged and replugged. The <code>plover-auto-reconnect-machine</code> plugin can handle this automatically on some setups. However, if the serial port changes between plugs, please note that this plugin will not work.
== Checking usability of plugin ==
To see if this plugin is usable with your setup, go to <code>Configure → Machine</code> and follow the instructions below:
# Open the <code>Port</code> drop down menu.
# Take note of the serial port that your machine is using.
# Unplug your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Plug in your writer.
# Press the <code>Refresh</code> button (labeled as <code>Scan</code> on older versions of Plover).
# Open the <code>Port</code> drop down menu.
# Check if the new serial port is the same.
#* If they are the same, you can proceed with this page to set up auto reconnect.
#* If they are different, auto reconnect may not work.
[[File:Auto-reconnect-test.png|alt=Plover configuration machine tab with refresh button highlighted. Drop down menu options highlighted.|center|thumb|708x708px|Left: <code>Refresh</code>/<code>Scan</code> button. Right: drop down menu options.]]
== Plugin installation ==
# Open the plugins manager.
# Find <code>plover-auto-reconnect-machine</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]].
== Plugin setup ==
# In Plover's main window, go to <code>Configure → Plugins</code>.
# Check the box next to <code>plover-auto-reconnect-machine</code>.
# Press <code>Apply</code> and then <code>OK</code>.
[[File:Plover-auto-reconnect-plugin-configuration.png|alt=Plover plugins tab with the plover-auto-reconnect-machine plugin check box.|center|thumb|502x502px|Check the box to enable the <code>plover-auto-reconnect-machine</code> plugin.]]
== Verify it works ==
# Make sure your machine is set up correctly.
# Write some words to test your configuration.
# Unplug your writer.
# Plug it back in and wait a few seconds.
# Plover's status should go from <code>Disconnected</code>[[File:State-disconnected.svg|frameless|28x28px]] to <code>Connected</code>[[File:State-enabled.svg|frameless|28x28px]]
# Write some words to see if it works.
[[Category:Plover]]
000801ab1c773c8dbce6995420ec594c58f6317e
Javelin
0
1523
2291
2253
2024-06-26T02:31:52Z
Aerick
9
wikitext
text/x-wiki
Javelin is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Features ==
<nowiki>#</nowiki>STKPWHRAO*EUFRPBLGTSDZ
971aacb3cc37beb905b57bda4fde33ef0db5de08
2305
2291
2024-07-13T02:20:28Z
Aerick
9
Expand the page
wikitext
text/x-wiki
[https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Features ==
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for.
=== Embedded steno engine ===
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
==== Dictionary management ====
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]]
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
==== Non-WSI layouts ====
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
==== Unicode characters ====
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]]
==== Key map customization ====
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]]
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
==== First-up and chord repeat ====
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]]
=== Layout editor ===
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
43068394250b471c117efdc0fca48bf2861c2d44
2306
2305
2024-07-13T02:48:39Z
Aerick
9
Add web tools section and error for connecting to Linux
wikitext
text/x-wiki
[https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Features ==
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for.
=== Embedded steno engine ===
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
==== Dictionary management ====
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]]
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
==== Non-WSI layouts ====
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
==== Unicode characters ====
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]]
==== Key map customization ====
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]]
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
==== First-up and chord repeat ====
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]]
=== Layout editor ===
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
=== Web tools ===
Javelin provides a set of web tools for learning aids, and tweaking settings.
==== Cannot connect to device on Linux ====
If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content:
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
35baf72d1e6806af61e27d3fe9da46167ff84d51
2309
2306
2024-07-13T03:19:24Z
Aerick
9
Add video demos of the embedded steno engine and add section on compatible steno protocols
wikitext
text/x-wiki
[https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Features ==
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for.
=== Embedded steno engine ===
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
[[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]]
==== Dictionary management ====
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]]
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
==== Non-WSI layouts ====
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
==== Unicode characters ====
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]]
==== Key map customization ====
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]]
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
[[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]]
==== First-up and chord repeat ====
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]]
=== Layout editor ===
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
=== Web tools ===
Javelin provides a set of web tools for learning aids, and tweaking settings.
==== Cannot connect to device on Linux ====
If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content:
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
=== Compatibility with existing steno protocols ===
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.
bc9bee8746ec7ee6f7afd8e6bf768e2f4a31fdae
2355
2309
2024-08-07T17:03:27Z
Aerick
9
wikitext
text/x-wiki
[https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Updating your writer to use Javelin ==
To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device.
The following video goes through this process at 1:06:
<youtube>nLBu5DZI4fY</youtube>
{{Info|text=You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.}}
=== 1. Select your steno writer ===
Firmware files can be downloaded from the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. Before proceeding, make sure the correct device is selected.
[[File:Javelin firmware builder device.png|center|thumb|420x420px|Make sure you have selected the right device before proceeding.]]
=== 2. Download a firmware file ===
==== 2a. New users ====
For new users, download either the <code>Default Plover</code> or <code>Default Lapwing</code> files depending on which theory you want to use.
[[File:Javelin Firmware Builder Default.png|center|thumb|420x420px|Download either <code>Default Plover</code> or <code>Default Lapwing</code>.]]
==== 2b. Advanced users ====
If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs.
=== 3. Copying the file to your device ===
The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive.
== Features ==
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for.
=== Embedded steno engine ===
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
[[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]]
==== Dictionary management ====
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]]
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
==== Non-WSI layouts ====
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
==== Unicode characters ====
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]]
==== Key map customization ====
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]]
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
[[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]]
==== First-up and chord repeat ====
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]]
=== Layout editor ===
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
=== Web tools ===
Javelin provides a set of web tools for learning aids, and tweaking settings.
==== Cannot connect to device on Linux ====
If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content:
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
=== Compatibility with existing steno protocols ===
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.
681d41e30390466b72c4b6dd89f266af61957ca7
2356
2355
2024-08-07T17:11:32Z
Aerick
9
wikitext
text/x-wiki
[https://lim.au/#/software/javelin-steno Javelin] is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available hobbyist writers]].
== Updating your writer to use Javelin ==
To use Javelin on your hobbyist steno writer, you will need to update the firmware. The general process involves downloading a Javelin firmware file, and copying it to your device.
The following video goes through this process at 1:06:
<youtube>nLBu5DZI4fY</youtube>
{{Info|text=You will need a computer running a desktop OS (e.g. Linux, macOS, Windows) to update your steno writer's firmware. This will not work on an Android or iOS device.}}
=== 1. Select your steno writer ===
Firmware files can be downloaded from the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. Before proceeding, make sure the correct device is selected.
[[File:Javelin firmware builder device.png|center|thumb|420x420px|Make sure you have selected the right device before proceeding.]]
=== 2. Download a firmware file ===
==== 2a. New users ====
For new users, download either the <code>Default Plover</code> or <code>Default Lapwing</code> files depending on which theory you want to use.
[[File:Javelin Firmware Builder Default.png|center|thumb|420x420px|Download either <code>Default Plover</code> or <code>Default Lapwing</code>.]]
==== 2b. Advanced users ====
If you wish to customize your Javelin configuration, select the options you want, and download either incremental or standalone depending on your needs.
=== 3. Copying the file to your device ===
The instructions to update your device differ depending on the board you are using; make sure you have selected the right board as outlined in step 1. You can find instructions to update your file's firmware at the bottom of the page. In general, most boards require you to hold down a button while plugging it in, and copying the firmware file you downloaded (in step 2) to the new drive.
== Device compatibility ==
Javelin works on any modern device that accepts USB keyboard input. This includes smartphones, Chromebooks, tablets, etc.
=== Apple iPhones ===
Javelin works out of the box with USB-C iPhones. For iPhones with a lightning connector, a camera kit is required.
== Features ==
This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the [https://lim.au/#/software/javelin-steno Javelin firmware builder]. You may have to select <code>Show expert options</code> to find the option you are looking for.
=== Embedded steno engine ===
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
[[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]]
==== Dictionary management ====
Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.
[[File:Javelin dictionaries section.png|center|thumb|1065x1065px|Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.]]
Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).
==== Non-WSI layouts ====
It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).
==== Unicode characters ====
Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.
[[File:Javelin keyboard emulation section.png|center|thumb|1021x1021px|All the methods that Javelin supports to write Unicode characters.]]
==== Key map customization ====
Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.
[[File:Javelin key map section.png|center|thumb|1009x1009px|Javelin supports setting an arbitrary key map.]]
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
[[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]]
==== First-up and chord repeat ====
Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.
[[File:Javelin first up-chord repeat section.png|center|thumb|1015x1015px|Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.]]
=== Layout editor ===
Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.
=== Web tools ===
Javelin provides a set of web tools for learning aids, and tweaking settings.
==== Cannot connect to device on Linux ====
If you see <code>Error connecting</code> while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at <code>/etc/udev/rules.d/99-keyboard-javelin.rules</code> with the following content:
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
=== Compatibility with existing steno protocols ===
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.
71d3f279a9cda8f7c45bd3c9981c6eddf9a012a4
Theming Plover with QSS
0
1502
2292
2188
2024-06-26T02:35:37Z
Aerick
9
wikitext
text/x-wiki
Plover can be themed arbitrarily using Qt Style Sheets. Generic themes can be downloaded online from sites like https://qss-stock.devsecstudio.com/, and community made themes specifically for Plover can be found on this page.
== Usage ==
Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions:
# Download the QSS file and name it <code>plover.qss</code>.
# In Plover's main window, go to <code>File → Open Config Folder</code>.
# Move the <code>plover.qss</code> file into this folder.
# Restart Plover.
== Community made QSS themes ==
=== [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] ===
[[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]]
[[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]]
fd2d58f5bef9603466586d3935f9238de25b0139
2293
2292
2024-06-26T02:35:47Z
Aerick
9
Aerick moved page [[QSS files for Plover]] to [[Theming Plover with QSS]]
wikitext
text/x-wiki
Plover can be themed arbitrarily using Qt Style Sheets. Generic themes can be downloaded online from sites like https://qss-stock.devsecstudio.com/, and community made themes specifically for Plover can be found on this page.
== Usage ==
Plover can be themed arbitrarily using Qt Style Sheets. To use a QSS file, follow these instructions:
# Download the QSS file and name it <code>plover.qss</code>.
# In Plover's main window, go to <code>File → Open Config Folder</code>.
# Move the <code>plover.qss</code> file into this folder.
# Restart Plover.
== Community made QSS themes ==
=== [https://gist.github.com/aerickt/04a56b23623afed376db38a6ca64388e Aerick's Adwaita Dark] ===
[[File:Aerick's Adwaita Dark Windows.png|alt=Aerick's Adwaita Dark theme on Windows 10.|left|frame|Aerick's Adwaita Dark theme on Windows 10.]]
[[File:Aerick's Adwaita Dark theme on GNOME..png|alt=Aerick's Adwaita Dark theme on GNOME.|thumb|478x478px|Aerick's Adwaita Dark theme on GNOME.]]
fd2d58f5bef9603466586d3935f9238de25b0139
QSS files for Plover
0
1534
2294
2024-06-26T02:35:47Z
Aerick
9
Aerick moved page [[QSS files for Plover]] to [[Theming Plover with QSS]]
wikitext
text/x-wiki
#REDIRECT [[Theming Plover with QSS]]
e02c8ae3b2fea207a4f1f93250ee7ede0f0f3399
Configuration
0
61
2295
2185
2024-06-26T02:35:51Z
Aerick
9
/* Theming/Dark Mode */
wikitext
text/x-wiki
This page contains information related to the Configuration menu in Plover, which is accessed by clicking the top left gear icon in the graphical user interface (GUI):
[[File:Configure Menu Location.png|frameless|350x350px]]
== Interface Tab ==
{| class="wikitable"
|+
|'''Start minimized'''
|Determines whether Plover is minimized or opened when the application starts.
|-
|'''Show paper tape'''
|Determines whether Plover's paper tape window is open when the application starts.
|-
|'''Show suggestions'''
|Determines whether Plover's suggestions window is open when the application starts.
|-
|'''Add translation dialog opacity'''
|Sets the opacity of the Add Translation dialog. 100 is opaque, and 0 is transparent.
|-
|'''Dictionaries display order'''
|Determines whether dictionaries display in order from top-down or bottom-up. Dictionaries higher in the list take priority in top-down mode, and vice-versa for bottom-up.
|}
== Logging Tab ==
{| class="wikitable"
|+
|'''Log file'''
|Sets the file path and file name of your log file. Click the '''Browse''' button to set a path in your OS file browser.
|-
|'''Log strokes'''
|Determines whether Plover logs your strokes to your log file
|-
|'''Log translations'''
|Determines whether Plover logs your translations to your log file
|}
== Machine Tab ==
The machine tab allows you to choose a machine type and set its configurations. Each machine type may have different options.
=== Machine: Keyboard ===
[[Beginner's Guide#Arpeggiate|Learn how the '''Arpeggiate''' mode works here.]]
'''First-up chord send''' will send your chord when Plover detects any key has been released. This is particularly useful for navigation chords and finger spelling.
==== Remapping Keys to Different Actions ====
The <code>Key</code> column enumerates every key that Plover can control on your machine. This is a list of all keys on the keyboard. For American steno machines, the key names will be the Ireland layout defaults (S, T, K, etc.)
The <code>Action</code> column is what you'd like Plover to see when the key is pressed. The available actions will change depending on which system (e.g. English Stenotype) you have enabled.
==== Disabling Keyboard Keys ====
Remapping keys is especially useful when using your keyboard as a steno machine, as you may want to set keys to <code>no-op</code> (short for "no operation") which will disable that key while Plover is running.
[[File:Machine configuration window.png|frameless|747x747px]]
''The escape key will be disabled while Plover's output is enabled with the configuration above, where the "Escape" key has been mapped to the "no-op" Action.''
=== Machine: Gemini PR, TX Bolt, Passport, ProCat, or Stentura ===
==== Options Section ====
===== Connection =====
Your machine will use a serial connection, which must be configured here.
{| class="wikitable"
|+
|'''Port'''
|The serial port for serial connections. No default value.
The value will most likely be different between platforms; Windows uses COM ports, e.g. <code>COM3</code>, whereas Unix-like platforms use device paths, e.g. <code>/dev/cu.usbmodem14403</code> or <code>/dev/ttyACM0</code>.
|-
|'''Scan'''
|Click to scan for connected devices
|-
|'''Baudrate'''
|The baud rate for serial connections. 9600 by default.
|}
===== Data Format =====
{| class="wikitable"
|+
|'''Data bits'''
|The number of bits in a byte for serial connections. 8 by default.
|-
|'''Stop bits'''
|The number of stop bits for serial connections. 1 by default.
|-
|'''Parity'''
|The parity bit mode for serial connections, one of <code>N</code> (none), <code>O</code> (odd), <code>E</code> (even), <code>M</code> (mark) or <code>S</code> (space). <code>N</code> by default.
|}
===== Timeout =====
The read timeout for serial connections in seconds. May be disabled with the '''Use timeout''' check box. Defaults to 2.00 (seconds).
==== Flow control ====
'''Xon/Xoff''': Whether to use XON/XOFF flow control for serial connections. False by default.
'''RTS/CTS''': Whether to use RTS/CTS flow control for serial connections. False by default.
==== Keymap Section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
=== Machine: Treal ===
==== Keymap section ====
Map keys from your machine to their outputs in Plover. For example, some stenography theories, such as [https://github.com/aerickt/steno-dictionaries?tab=readme-ov-file Lapwing], require the top-left <code>S1-</code> key to be remapped to <code>#</code>.
== Output Tab ==
{| class="wikitable"
|+
|'''Enable at start'''
|Determines whether Plover will start at system boot
|-
|'''Start attached'''
|Determines whether Plover will start without a starting space
|-
|'''Start capitalized'''
|Determines whether Plover will start with the first letter capitalized
|-
|'''Space placement'''
|Determines whether spaces are prepended to your translations with '''Before Output''' or appended to your translations with '''After Output'''
|-
|'''Undo levels'''
|Determines how many strokes can be undone with <code>*</code>
|-
|'''Key press delay (ms)'''
|Determines how many milliseconds Plover will wait before outputting the translation of your strokes
|}
== Plugins Tab ==
Some plugins, such as <code>plover_clippy</code>or <code>plover_tapey_tape</code>will have configurations specific to the plugin here.
== System Tab ==
Allows the user to switch to another stenography system.
== Theming/Dark Mode ==
''See: [[Theming Plover with QSS]].''
cf9a537a997deb29493c59af9be507a93d0ac880
Choosing a hobbyist steno writer
0
1525
2296
2259
2024-06-26T02:40:13Z
Aerick
9
Typo, rephrase Javelin (it's a firmware...not *just* an embedded steno engine)
wikitext
text/x-wiki
For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you:
* You cannot run Plover on your device
** Incompatible devices (Android and iOS devices)
** Insufficient permissions on your computer (work/school computer)
* You intend to steno in a language that's not English
* You will exclusively use your steno writer in your computer usage
== Considerations ==
=== Javelin support ===
[[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device.
=== Non-English language support ===
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
=== Using a steno writer exclusively ===
It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD.
== Table summary ==
{| class="wikitable sortable"
!Product Name
!Javelin Support
!Non-English language support
!QWERTY layer / Extra keys
|-
|[https://stenomod.blogspot.com/ TinyMod]
|No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/ecosteno/ Ecosteno]
| rowspan="2" |No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/multisteno/ Multisteno]
|Yes
|Yes
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |Yes
|Limited to WSI
|No
|-
|[https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
|Limited to WSI
|No
|-
|[https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
|Yes
|Yes
|-
|[https://www.stenography.store/ Starboard]
|Yes
|Limited to WSI
|No
|-
|[https://softhruf.love/ SOFT/HRUF Splitography]
|No
|Yes
|Yes
|}
c36a9634a9e8e3c26ea2cf2eb88575cdf8c11613
2347
2296
2024-07-23T23:44:55Z
.kevinlel
1636
removed splitography
wikitext
text/x-wiki
For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you:
* You cannot run Plover on your device
** Incompatible devices (Android and iOS devices)
** Insufficient permissions on your computer (work/school computer)
* You intend to steno in a language that's not English
* You will exclusively use your steno writer in your computer usage
== Considerations ==
=== Javelin support ===
[[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device.
=== Non-English language support ===
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
=== Using a steno writer exclusively ===
It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD.
== Table summary ==
{| class="wikitable sortable"
!Product Name
!Javelin Support
!Non-English language support
!QWERTY layer / Extra keys
|-
|[https://stenomod.blogspot.com/ TinyMod]
|No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/ecosteno/ Ecosteno]
| rowspan="2" |No
|Limited to WSI
|No
|-
|[https://nolltronics.com/product/multisteno/ Multisteno]
|Yes
|Yes
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |Yes
|Limited to WSI
|No
|-
|[https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
|Limited to WSI
|No
|-
|[https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
|Yes
|Yes
|-
|[https://www.stenography.store/ Starboard]
|Yes
|Limited to WSI
|No
|}
463a5190189d99c2d006a6259faf59427281b80c
2348
2347
2024-07-24T00:08:51Z
Aerick
9
/* Add prices */
wikitext
text/x-wiki
For most users, any of the [[Supported Hardware#Commercially available hobbyist writers|commercially available hobbyist writers]] are perfectly adequate—choose a writer that's in stock, and within your budget. However, you may want to take more care in choosing a writer if any of the following apply to you:
* You cannot run Plover on your device
** Incompatible devices (Android and iOS devices)
** Insufficient permissions on your computer (work/school computer)
* You intend to steno in a language that's not English
* You will exclusively use your steno writer in your computer usage
== Considerations ==
=== Javelin support ===
[[Javelin]] is a keyboard firmware that features an steno engine. This means all the steno translations occur within the keyboard itself, bypassing the need to install Plover on the host machine; essentially "plug and play stenography" without any setup required. This is useful if you cannot run Plover is not compatible with your device.
=== Non-English language support ===
The layout used for the vast majority of English steno theories, known as the [[Ward Stone Ireland layout]] (WSI), may not be sufficient for other languages. The layout for [[Steno Layouts and Supported Languages#Korean CAS|Korean CAS]] , for example, uses 6 thumb keys and has an entire dedicated row for numbers. If you are intending to use Plover for other languages, have a look at the [[Steno Layouts and Supported Languages|languages]] page for more details on the layouts supported by Plover.
=== Using a steno writer exclusively ===
It is possible to use a steno writer as your only keyboard for all your computer usage. However, sometimes it may be useful to have extra keys for two main reasons. First, some steno writers also double as a standard keyboard. They can be toggled to behave like a QWERTY keyboard (or any other layout), such that you do not need to switch physical keyboards. Furthermore, the extra keys on a steno writer can be mapped to modifier keys. This helps facilitating holding down keys as required for certain applications like CAD.
== Table summary ==
{| class="wikitable sortable"
!Product Name
!Javelin Support
!Non-English language support
!QWERTY layer / Extra keys
!Price (USD)
|-
|[https://stenomod.blogspot.com/ TinyMod]
|No
|Limited to WSI
|No
|$140 (stock)
$180 (silent)
|-
|[https://nolltronics.com/product/ecosteno/ Ecosteno]
| rowspan="2" |No
|Limited to WSI
|No
|$95
|-
|[https://nolltronics.com/product/multisteno/ Multisteno]
|Yes
|Yes
|$170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |Yes
|Limited to WSI
|No
|$50
|-
|[https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
|Limited to WSI
|No
|$100
|-
|[https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
|Yes
|Yes
|$125
|-
|[https://www.stenography.store/ Starboard]
|Yes
|Limited to WSI
|No
|$90
|}
897002d447b0b48342ae73ae86d626cfbf072226
File:Javelin keyboard emulation section.png
6
1535
2301
2024-07-13T02:09:00Z
Aerick
9
wikitext
text/x-wiki
Javelin keyboard emulation section
937d3d4a339d60e6a577aae8d4da2ba624a0ad76
File:Javelin dictionaries section.png
6
1536
2302
2024-07-13T02:10:27Z
Aerick
9
wikitext
text/x-wiki
Javelin dictionaries section
f1c9e1f4d9ff02f75969c3bccc218dd888c23255
File:Javelin key map section.png
6
1537
2303
2024-07-13T02:13:03Z
Aerick
9
wikitext
text/x-wiki
Javelin key map section
2c7a20b6ddf8df4e97ad5dfdfd338d3783547ef1
File:Javelin first up-chord repeat section.png
6
1538
2304
2024-07-13T02:16:36Z
Aerick
9
wikitext
text/x-wiki
Javelin first up/chord repeat section
35a6553f1c24d66858eaf97eb89a3594d20bd622
File:Javelin embedded steno engine on Pixel 4.mp4
6
1539
2307
2024-07-13T03:12:37Z
Aerick
9
wikitext
text/x-wiki
Javelin embedded steno engine on Pixel 4
16441ac1a953485a7f476b5f964a08fb31cce2cf
File:Adding translation with Javelin's TUI.mp4
6
1540
2308
2024-07-13T03:13:49Z
Aerick
9
wikitext
text/x-wiki
Adding translation with Javelin's TUI
72e33d97d8ce804a31a2f7f8b2ef46a07d349d4b
Multisteno
0
1541
2311
2024-07-20T17:03:34Z
Aerick
9
Created page with "The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics]. == Use with Plover == By default, the Multisteno uses the Gemini PR protocol. See: [[Setting up a hobbyist writer with Plover]] == Layers == == Mods == === MBK key caps === The default key caps can be replaced with MBK key caps. === Spring swapping === The default springs bottom out at 25 grams of f..."
wikitext
text/x-wiki
The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics].
== Use with Plover ==
By default, the Multisteno uses the Gemini PR protocol.
See: [[Setting up a hobbyist writer with Plover]]
== Layers ==
== Mods ==
=== MBK key caps ===
The default key caps can be replaced with MBK key caps.
=== Spring swapping ===
The default springs bottom out at 25 grams of force, but can be swapped with SPRiT springs that bottom out at 20 grams.
=== Firmware ===
The Multisteno is powered by QMK.
8275b62c008cb6e7476c8efb91df5637b1b5af90
2343
2311
2024-07-21T22:04:36Z
Aerick
9
add infobox
wikitext
text/x-wiki
The [https://nollelectronics.com/products/multisteno-case-and-cables-included Multisteno] is a hobbyist steno writer made by [https://nollelectronics.com/ Nolltronics].
{{Hobbyist writer infobox|name=Multisteno|image=Multisteno-Top.png|manufacturer=[https://nollelectronics.com/ Nolltronics]|connector=USB-C|switch=Kailh Choc|stock_weight=20 grams|spring_swap=Yes: 15 grams, 12 grams|alt_key_caps=MBK|javelin=No}}
== Use with Plover ==
By default, the Multisteno uses the Gemini PR protocol.
See: [[Setting up a hobbyist writer with Plover]]
== Layers ==
== Mods ==
=== MBK key caps ===
The default key caps can be replaced with MBK key caps.
=== Spring swapping ===
The default springs bottom out at 25 grams of force, but can be swapped with SPRiT springs that bottom out at 20 grams.
=== Firmware ===
The Multisteno is powered by QMK.
1749a983bda566e55473b7fee1f9f4e6cb60c203
Template:Tl
10
1549
2327
2326
2024-07-21T01:34:28Z
Aerick
9
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
{{Redirect category shell|
{{R from move}}
}}
d6593bb3b4a866249f55d0f34b047a71fe1f1529
Template:Hobbyist writer infobox
10
1557
2341
2024-07-21T21:57:25Z
Aerick
9
Created page with "<includeonly> <aside style="float:right; margin-bottom: 10px; margin-left: 10px;"> <div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div> <div style="background:#eee; padding:5px 10px;"> <center>[[File:{{{image}}}|200px]]</center> Manufacturer: {{{manufacturer}}} Connector: {{{connector}}} Key switch: {{{switch}}} Stock key weight: {{{stock_weight}}} Spring swap: {{{spring_swap}}} Alternative key caps: {{{alt_key_caps..."
wikitext
text/x-wiki
<includeonly>
<aside style="float:right; margin-bottom: 10px; margin-left: 10px;">
<div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div>
<div style="background:#eee; padding:5px 10px;">
<center>[[File:{{{image}}}|200px]]</center>
Manufacturer: {{{manufacturer}}}
Connector: {{{connector}}}
Key switch: {{{switch}}}
Stock key weight: {{{stock_weight}}}
Spring swap: {{{spring_swap}}}
Alternative key caps: {{{alt_key_caps}}}
[[Javelin]]: {{{javelin}}}
</div>
</aside>
</includeonly>
<noinclude>
Documentation for this template:
name
: Name of the writer.
image
: Filename of image uploaded to this wiki.
manufacturer
: Manufacturer of the keyboard.
connector
: Type of connector found on the writer
switch
: Key switch found on the writer
stock_weight
: Bottom out force of the unaltered switch (grams).
spring_swap
: Yes/No (lowest bottom out force available)
alt_key_caps
: Aftermarket key caps available to purchase
javelin
: Yes/No
</noinclude>
d4fe2bfce94540a92f1d57f22d3af24861cc3b32
2344
2341
2024-07-22T01:34:29Z
Aerick
9
wikitext
text/x-wiki
<includeonly>
<div style="float:right; margin-bottom: 10px; margin-left: 10px;">
<div style="background:#789;color:white; text-align:center; padding:5px 10px;"> '''{{{name}}}''' </div>
<div style="background:#eee; padding:5px 10px;">
<center>[[File:{{{image}}}|200px]]</center>
Manufacturer: {{{manufacturer}}}
Connector: {{{connector}}}
Key switch: {{{switch}}}
Stock key weight: {{{stock_weight}}}
Spring swap: {{{spring_swap}}}
Alternative key caps: {{{alt_key_caps}}}
[[Javelin]]: {{{javelin}}}
</div>
</div>
</includeonly>
<noinclude>
Documentation for this template:
name
: Name of the writer.
image
: Filename of image uploaded to this wiki.
manufacturer
: Manufacturer of the keyboard.
connector
: Type of connector found on the writer
switch
: Key switch found on the writer
stock_weight
: Bottom out force of the unaltered switch (grams).
spring_swap
: Yes/No (lowest bottom out force available)
alt_key_caps
: Aftermarket key caps available to purchase
javelin
: Yes/No
</noinclude>
dc9e98a24d7963b517b850f8aa876bf85b48a965
File:Multisteno-Top.png
6
1558
2342
2024-07-21T22:03:42Z
Aerick
9
wikitext
text/x-wiki
Multisteno Top View
1012c7212778ef97389e6ca84c06bf9f629b5ca0
Supported hardware
0
10
2345
2274
2024-07-23T23:43:12Z
.kevinlel
1636
removed splitography
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
88d866ba7c1a49dd7a278cf299a878f073cb4b75
2349
2345
2024-08-05T11:21:54Z
Tharelia
1661
Added Jarne to hobbyist steno writers.
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="[https://lim.au/assets/assets/image/jarne1.jpg https://lim.au/assets/assets/image/jarne1.jpg" width="300px"]//>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
7fbf1b825593826b0563baf42919bcc2e9c8d9bf
2350
2349
2024-08-05T11:23:57Z
Tharelia
1661
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
a6c48aa17d81574d4992eebd498475ae812dae59
2351
2350
2024-08-05T11:24:39Z
Tharelia
1661
Change Stock Status formatting for more consistency
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
f59e806bd9473fb87568c720e9b56fcd8dbad1ef
2352
2351
2024-08-05T16:13:17Z
Tharelia
1661
Added info on Jarne options
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_0braya2.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
Wireless charging, tenting and tripod mount options available as extras.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
1844563bee1462b05698c41daafa087ef859b5d4
Out of production writers
0
1511
2346
2237
2024-07-23T23:44:21Z
.kevinlel
1636
added splitography
wikitext
text/x-wiki
Models that are no longer made or available for sale.
{| class="wikitable"
|-
! Product Name
! Manufacturer
! About
! Years
|-
| Stenoboard
| Utopen (Emanuele Caruso)
| <img alt="Stenoboard" src="https://cdn.thingiverse.com/renders/a9/15/3f/8c/6a/stenoboard_1.1_preview_preview_featured.jpg" width="300px" align="right" />
The Stenoboard was the first open source steno machine on the market, released in 2014 for around $180USD. The Stenoboard’s keys actuate like mouse-clicks instead of a keyboard or lever-machine, which made it very uncomfortable to use.
| 2014-2017
|-
| [https://softhruf.love SOFT/HRUF]
| Scott Urueta
| <img alt="Original SOFT/HRUF" src="https://groups.google.com/group/ploversteno/attach/1d0225cb7826d/Screen%20Shot%202016-10-14%20at%203.46.28%20PM.png?part=0.1&view=1" width="300px" align="right" />
The nonsplit version of SOFT/HRUF.
| 2017-2018, superseded by the Splitography
|-
| [https://softhruf.love SOFT/HRUF Splitography]
| Scott Urueta
| <img alt="SOFT/HRUF Splitography" src="https://i.imgur.com/pvmzoQy.png" width="300px" align="right" />
Open source hardware. Its keycaps are injection molded and fit on Matias keyboard switches. The name is the steno representation for, and is pronounced as, “soft love”. The SOFT/HRUF uses Matias Red switches (~40g actuation). With third-party springs and removing the switch’s internal leaflet, it is possible to reduce the force required to actuate.
|
|-
| [https://stenomod.blogspot.com Stenomod]
| Charley Shattuck
| <img alt="Stenomod" src="https://2.bp.blogspot.com/-n7j50BDdjAg/WJECk94jwCI/AAAAAAAAAI4/2E-G1dgflccCltPFN9FEPI4QtMW62ttCQCK4B/s400/20170131_131923.jpgre" width="300px" align="right" />
Open source hardware. This has light (35g actuation) keys and a split design. See [https://www.tedmor.in/blog/posts/stenomod-affordable-steno-machine Ted Morin’s review of the Stenomod] as well as [https://stenoblog.com/the-stenomod/ Martin Körner’s review]. The name is supposed to hint at how the machine is “modular” and adaptable.
| 2017-2018, superseded by the TinyMod
|-
| [https://www.gboards.ca/product/georgi Georgi]
| [https://www.gboards.ca g Heavy Industries]
| <img alt="Georgi" src="https://assets.bigcartel.com/product_images/235027235/imadd+ge0.jpg?auto=format&fit=max&w=600" width="300px" align="right" />
Portable, affordable, and light-touch option. Low-profile Kailh Choc switches with 12g-actuation springs swapped in makes this the lightest-touch and lowest-height machine made for Plover so far. The removal of a number bar reduces costs and weight for portability. A third thumb key is to be used as a number bar replacement like the TinyMod. See [https://stenoblog.com/georgi-stand-with-trackball/ Martin’s Georgi Stand with Trackball review], [http://plover.stenoknight.com/2019/12/georgi-review.html Mirabai’s review], [https://aerick.ca/steno/georgi-stand/ Aerick’s Georgi Mount], and [https://gist.github.com/JoshuaGrams/f688ae7a14a995c78ed06d49402dea04 Josh’s photos].
| 2019-2021
|-
| [https://quanicboards.com/products/steko Steko]
| [https://quanicboards.com Quanic Boards]
| <img alt="Quanic Boards Steko" src="https://i.imgur.com/ab9Ln8p.jpeg" width="300px" align="right" />
A simple, small steno keyboard featuring a RP2040 chip, a USB-C interface, Durock Dolphin silent switches, and 3D Printed PLA keycaps.
| 2022-2023
|}<span id="stenotype-machines"></span>
8316a81c2c59c826b65cacf593a344a22d2130ad
File:Javelin Firmware Builder Default.png
6
1559
2353
2024-08-07T16:50:04Z
Aerick
9
wikitext
text/x-wiki
Javelin Firmware Builder Default
678ba2593ed221ca1e7dba015d1a36ce692647df
File:Javelin firmware builder device.png
6
1560
2354
2024-08-07T16:54:01Z
Aerick
9
wikitext
text/x-wiki
Javelin firmware builder device
4401d4b5f0587f71698982371f762b851d499a9e
Choosing a steno theory
0
1561
2357
2024-08-08T20:47:59Z
Aerick
9
Created page with "There are many steno theories that encompass the rules you use to convert words to steno strokes. Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster. The default theory that comes with the Plover app (called..."
wikitext
text/x-wiki
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight’s own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practice concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you’ve chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you’re certain you like stenography and see a clear reason to switch.
110e20ede1028a0d36d0fe5e7d8e85c2c08fcaa2
Beginner's Guide
0
4
2358
2245
2024-08-08T20:50:13Z
Aerick
9
simplify practice and learn
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]].
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:54-->
<span id="practice-sentences"></span>
==== Practice sentences ====
<!--T:55-->
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:61-->
{| class="wikitable"
|-
! style="text-align: center;"| QWERTY layout
! style="text-align: center;"| Maps to steno layout
|-
| style="text-align: center;"| <code>QWER TY UIOP[</code>
| style="text-align: center;"| <code>STPH ** FPLTD</code>
|-
| style="text-align: center;"| <code>ASDF GH JKL;</code>
| style="text-align: center;"| <code>SKWR ** RBGSZ</code>
|-
| style="text-align: center;"| <code>CV NM</code>
| style="text-align: center;"| <code>AO EU</code>
|}
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory].
See also: [[Choosing a steno theory]]
<!--T:71-->
<span id="personalizing-your-dictionary"></span>
== Personalize your dictionary ==
<!--T:80-->
Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
4deef293cc6f9fb66b2d27cbb6507fda15cfb528
Beginner's Guide
0
4
2359
2358
2024-08-08T20:54:44Z
Aerick
9
remove reference to steno jig two key drill
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]].
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory].
See also: [[Choosing a steno theory]]
<!--T:71-->
<span id="personalizing-your-dictionary"></span>
== Personalize your dictionary ==
<!--T:80-->
Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
7e4a7fab134718b0f95f6d9384597549ad06eefd
2360
2359
2024-08-08T21:40:49Z
Aerick
9
/* Practice and learn */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]].
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory].
''See also: [[Choosing a steno theory]]''
<!--T:71-->
<span id="personalizing-your-dictionary"></span>
== Personalize your dictionary ==
<!--T:80-->
Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes.
<!--T:81-->
English steno is built on the idea that no two stenographers' dictionaries are ever the same. It is easiest to see this since different theories dictate how to construct steno strokes for a given word. However, even within the same steno theory, there can be multiple valid outlines for one word. For some people, one valid outline may make more sense than another, but for others, it may be the other way around. With different dialects and accents, there can also be multiple valid pronunciations for the same word. More importantly, different people use different word more often than others. Even for a steno stroke that represents a single unambiguous syllable, different people will assign it to different things.
<!--T:82-->
For example, there is no agreed upon translation for the steno stroke <code>SEP</code>. "Sep" is not a word, but there is a [https://en.m.wikipedia.org/wiki/SEP very long disambiguation page on Wikipedia] for this three letter combination. While the default dictionary that comes with Plover maps this to the word "accept", you may find it more helpful as something else.
<!--T:83-->
When starting off with steno, it is okay to be uncomfortable with making your own entries; after all, you might not know the theory rules completely. However, over time, you should be personalizing and tweaking your dictionary to the way that you write. At first, you can start off with little things. For example, you may find it helpful to remap <code>SEP</code>to "September" if you talk about it often. Eventually, however, you may even find yourself disagreeing with a theory rule. It is completely acceptable to add alternative entries and even remove the ones that you don't think are good. Ultimately, the end goal of any stenographer (whether a professional or a hobbyist) is to be comfortable with adapting their dictionary to the way that they write.
More information: [[Personalizing your dictionary]].
<!--T:78-->
[[Category:Plover]]
</translate>
3828ba889d8d10905614992fc5a9ccce312df55d
2362
2360
2024-08-09T22:49:54Z
Aerick
9
/* Make personalizing your dictionary section more concise */
wikitext
text/x-wiki
<languages />
<translate>
<!--T:6-->
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
<!--T:7-->
<span id="download-and-install-plover"></span>
== Download and Install Plover ==
<!--T:8-->
Plover is an app that translates the strokes you press on your steno machine to entire words. If you do not have a steno machine, Plover can use your regular keyboard as one. It is free to download, and it works on '''Windows, Mac, and Linux'''.
<!--T:9-->
* '''[[Installation_Guide|Download and install Plover with the Installation Guide]]'''
* If you get stuck, see the [[Troubleshooting Issues|troubleshooting guide]].
<!--T:10-->
<span id="connect-a-compatible-keyboard-or-stenography-machine"></span>
== Connect a compatible keyboard or stenography machine == <!--T:11-->
<!--T:12-->
Steno involves pressing down groups of keys (called “strokes” or “chords) all at once. Standard QWERTY keyboards can usually only recognize one to six simultaneous key presses. Owning a dedicated dedicated steno writer makes it easier to reach high speeds.
'''If you are unsure of if you want to learn steno''', read the page on [[using a standard keyboard with Plover]].
'''If you are sure you want to learn steno''', we recommend purchasing a [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writer]].
<!--T:41-->
It is also possible to use a professional stenography machine with Plover. See the [[Supported Hardware#Stenotype machines|supported Hardware]] page for a list of compatible professional stenography machines.
<!--T:42-->
== Confirm it’s working ==
<!--T:43-->
Initially, Plover is set up to use your computer’s typing keyboard by default. If you are using a regular keyboard, proceed to Enable Plover below. If you have a dedicated steno writer, see the page on [[setting up your writer with Plover]].
<!--T:45-->
=== Enable Plover ===
Once you have set up your machine with Plover
<!--T:46-->
# Run Plover.
# In the main window of Plover, set <code>Output</code> to <code>Enabled</code>
<!--T:47-->
<span id="write-hello-world"></span>
=== Write “Hello World” ===
<!--T:48-->
To confirm Plover is working correctly, you may try to write “Hello, world.” into a text editor with Plover. Open a text editor and write the steno key strokes in the table below, one row at a time.
<!--T:49-->
{{Info|text=Notepad in Windows 11 is buggy with Plover's fast emulated output. Try a different program such as Microsoft Word or Google Docs in a browser, or increase the key press delay shown below:
<!--T:50-->
<br />
[[File:Plover_key_delay.png]]}}
<!--T:51-->
If you are using a QWERTY keyboard, the steno keys are arranged on the layout like so:
[[File:Steno keys on QWERTY keyboard by Jen.png|center|thumb|583x583px|Steno keys on a QWERTY keyboard as understood by Plover.]]
If you are using a QWERTY keyboard, you may find it helpful to follow the column on the right. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
<!--T:52-->
{| class="wikitable"
|-
! Output
! Steno Stroke
! QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
<!--T:53-->
If you see different output, open the paper tape (in Plover’s main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following:
* If you are using a steno machine and are not getting the right keys/output, make sure you have set it up correctly.
* If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO. Try rolling or arpeggiating your strokes.
<!--T:56-->
<span id="use-the-correct-body-posture-and-finger-placement"></span>
==== Use the correct body posture and finger placement ====
<!--T:57-->
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
<!--T:58-->
<div class="figure">
<!--T:59-->
[[File:Steno keys on QWERTY keyboard by Jen.png|alt=Steno keys on a QWERTY keyboard.|center|thumb|704x704px|Steno keys on a QWERTY keyboard.]]
<!--T:60-->
</div>
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
<!--T:62-->
See also:
<!--T:63-->
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
<!--T:69-->
<span id="practice-and-learn"></span>
== Practice and learn ==
<!--T:70-->
Now that you have a working setup, it's time to start learning a steno theory. This is the set of rules you need to know in order to convert words to steno strokes. There are a few freely available steno theories with their own pros and cons, but we recommend learning [https://lapwing.aerick.ca Lapwing theory].
''See also: [[Choosing a steno theory]]''
<!--T:71-->
<span id="personalizing-your-dictionary"></span>
== Personalize your dictionary ==
<!--T:80-->
Once you have learned a decent amount of theory, it is important to customize your steno dictionary. English steno uses dictionaries to translate the keys pressed on a steno machine to the outputted text. These dictionaries are essentially huge files that contain entries for most of the words in the English language and their respective steno strokes. Steno is highly personal, and it is difficult to gain speed by sticking to default mappings. No two stenographers' dictionaries are the same because of how complicated the English language is. Some steno concepts work well for some people, but not for others.
''More information: [[Personalizing your dictionary]].''
<!--T:78-->
[[Category:Plover]]
</translate>
e40a3dac3bef7d9125fe270e3b2d9e266a5f9eda
Personalizing your dictionary
0
1492
2361
2164
2024-08-09T22:45:06Z
Aerick
9
typo
wikitext
text/x-wiki
== The dictionary's purpose ==
English steno uses dictionaries because it is very difficult to spell a word based on pronunciation. Trying to systematically encode all the English spelling rules and exceptions is difficult. It is much easier to use a file that directly maps steno outlines to English words. These mappings, of course, are not just decided arbitrarily. They do follow rules, but these are much easier for humans to understand than computers.
For languages with much more regular spelling, dictionaries aren't always necessary. It may be desirable to design what's called an orthographic system that is based entirely on spelling; chords on the steno layout are assigned to characters rather than sounds. With these, dictionaries may not even be necessary as the system only has to combine character groups together. Orthographic systems do exist for English, but they are generally slower than more traditional steno systems. This is mainly due to the less consistent spelling in the English language.
== The rationale behind different dictionaries ==
English steno is built on the idea that no two stenographers' dictionaries are the same. For some, this may seem odd—why not just standardize steno and have everyone learn the same theory/dictionary?
Well first of all, English is a complicated language with different dialects and accents. With steno being primarily phonetic, it would difficult to create a single theory for all English speakers. More importantly, however, there are different ideas as to how the English language should be encoded on the the layout. Some steno theories are more heavy in rote memorization and require you to memorize more arbitrary steno strokes. Some steno theories rely more heavily on spelling instead of phonetics. Some steno theories like to split words more logically, while others may be more open-ended. There is no single "best" steno theory since some ideas are more intuitive than others depending on the person. Different theories click for different people.
== Different dictionaries within the same theory ==
Even within one theory, different stenographers will have different dictionaries. This is due to the fact that a lot of steno theories are at least a little open-ended. It would be difficult to create a rule for every single edge case in the English language. Additionally, to expect everyone to follow these subtle rules would be unrealistic. Most hobbyists start off adding simple entries to their dictionaries.
For example, the steno stroke <code>APD</code> does not represent any word in the English language. If you write about the Albuquerque Police Department often, this is a good stroke that you can use. On the other hand, you may find yourself accidentally stroking <code>APD</code> instead of <code>APT</code> when writing the word "apt"; this would be a good misstroke entry to add. It is also conceivable that the sound represented by this stroke is actually a word found in some particular niche circle. In this case, it may make sense to an individual part of this community to assign <code>APD</code> to this niche term. What this stroke is assigned to depends entirely on the person, their writing style, and what they write about.
[[Category:Plover]]
__FORCETOC__
70889d5d88d154c75b9f0035463c5c44c1393f41
Glossary
0
16
2363
2108
2024-08-09T23:33:31Z
Aerick
9
Add orthography and phonetic
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic.
''See also: [[Glossary#Orthography|Phonetic]]''
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic.
''See also: [[Glossary#Orthographic|Orthographic]]''
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
b4d0c5d37e645c26ba6d00b4c6ef9d7ba9938391
2391
2363
2024-08-18T23:58:02Z
Crorl
1668
/* Orthographic */ Added "Fingerspelling" and "Orthospelling". Expanded "Orthographic" and "Phonetic".
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys representing a certain sound. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]].
''See also: [[Glossary#Orthographic|Orthographic]]''
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
f633b92c53bdee44594877dad35ab29f71af0776
2392
2391
2024-08-19T00:00:04Z
Crorl
1668
/* Chord */ chords don't necessarily represent just sounds
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]].
''See also: [[Glossary#Orthographic|Orthographic]]''
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word. For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
=== Steno Theory ===
A "system" or way of thinking that determines which steno strokes will match to which words. Theories range generally from being based on spelling ("brief-heavy") to being based on the sound of the word ("stroke-heavy"). The dictionary included with Plover uses a theory based on "NYCI theory", which is descended from StenEd. It offers a hybrid between a brief-heavy and stroke-heavy theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai uses the Plover dictionary professionally.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
8e2d459a8ef7644e47b7d553fa3c7d0586c905f2
2393
2392
2024-08-19T00:18:31Z
Crorl
1668
/* Steno Theory */ Added brief-heavy and stroke-heavy. Adjusted Steno Theory to refer to other terminology within the glossary.
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
d28b7c43256636a37f647166165789607abd545d
2394
2393
2024-08-19T00:21:28Z
Crorl
1668
/* Write Out */ Mentioned stroke-heavy
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
This generally leads to a more [[Glossary#Stroke|stroke-heavy]] form of writing.
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
d93020027c34ef801debe58e5bb0d81cc062ffde
2405
2394
2024-08-19T08:38:38Z
Crorl
1668
Added Short and Long
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Long ===
Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information.
''See also: [[Glossary#Short|Short]]''
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no written out outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== Phrase ===
A stenographic definition that outputs multiple words.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Short ===
Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words.
See also: ''[[Glossary#Long|Long]]''
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
This generally leads to a more [[Glossary#Stroke|stroke-heavy]] form of writing.
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
b70c698e5e9a07d94f6aff926ce1ad7fa12ed92f
2406
2405
2024-08-19T08:39:42Z
Crorl
1668
/* Mandatory */ add link to write out
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Long ===
Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information.
''See also: [[Glossary#Short|Short]]''
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords.
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== Phrase ===
A stenographic definition that outputs multiple words.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Short ===
Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words.
See also: ''[[Glossary#Long|Long]]''
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
This generally leads to a more [[Glossary#Stroke|stroke-heavy]] form of writing.
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
4666b1382bfd7e28f52fb4316f71ebc320b0c469
2407
2406
2024-08-19T08:43:08Z
Crorl
1668
/* Philly Shift */
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs are simply non-phonetic mappings of steno outlines to English words or phrases. Common words and phrases are often briefed for the purpose of speed. For instance, the phrase "from time to time" would regularly be written out:
<code>FROM/TAOIM/TO/TAOIM</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>FRIMT</code> (reads: "frimt" and takes only one stroke)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Long ===
Describes a theory that has words that are written with very many strokes. This often means very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information.
''See also: [[Glossary#Short|Short]]''
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. This technique is named after the theory from which it originated, in the [[Philadelphia Clinic Theory]].
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== Phrase ===
A stenographic definition that outputs multiple words.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Short ===
Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words.
See also: ''[[Glossary#Long|Long]]''
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to your theory. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
This generally leads to a more [[Glossary#Stroke|stroke-heavy]] form of writing.
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
3153f7b3117cdedfe813e79a779698a1472811f9
2408
2407
2024-08-19T08:54:57Z
Crorl
1668
/* Long */
wikitext
text/x-wiki
This glossary will help you with terms that you may come across in the steno community.
=== Arpeggiate ===
A Plover feature enabling a standard keyboard to [[Glossary#stroke|stroke]] a [[Glossary#chord|chord]] by pressing one key at a time. This feature is reminiscent of Caps Lock or Sticky Keys. When enabled, the default arpeggiate begin/end toggle is <code><space></code>. Press <code><space></code> to begin arpeggiating, then press the keys which make up the chord, and, finally, press <code><space></code> to end arpeggiating and send the chord. The "Arpeggiate" checkbox must be toggled via <code>Configure > Machine</code> (with "Keyboard" selected from the drop-down) in order for this feature to work, as pictured below.
<img alt="toggle arpeggiating checkbox to enable" src="https://media.discordapp.net/attachments/144999734254370816/712119290442023042/unknown.png" >
The term "arpeggiate" is analogous to individually playing each note of a musical chord. See [[Learning Stenography#Cheat Sheets|cheat sheets]] for pictures of how keyboard keys correspond to steno keys.
=== Brief ===
Also known as the "abbreviation", "short form", or "arbitrary". Briefs describe any less rigid mappings of steno outlines to English words or phrases. They can vaguely represent some of the spelling or sounds of the output, or have no relation between the outline and output. Common words and phrases are often briefed for the purpose of speed.
For instance, the phrase "from time to time" would regularly be written out:
<code>TPROPL/TAOEUPL/TO/TAOEUPL</code> (reads: "from/time/to/time" and takes four strokes)
Or, as a simple brief:
<code>TPREUPLT</code> (reads: "frimt" and takes only one stroke. This phrase brief vaguely represents the sounds and spelling of the words outputted.)
Theories that rely on significant amounts of briefs are considered '''brief-heavy''''','' and considered to require a heavy mental load due to the memorisation required. A theory that is known for being brief-heavy in the industry is [[Magnum theory|Magnum]].
=== Chord ===
A group of keys pressed together. For example, <code>TPH-</code> is a chord that represents the initial N sound.
=== Conflict ===
# traditionally: a conflict-based theory uses one stroke for multiple translations. For example, a non-realtime stenographer could use the same stroke for "bare", "bear", and "bar", which is a conflict that the stenographer would have to manually resolve at a later time. Plover is a realtime-only system and does not support conflict-theories.
# informal; a.k.a collision: when two dictionaries have the same stroke, the dictionary with the highest priority is favored. For this reason, it is important to understand your dictionary order.
=== Dragging ===
Dragging is the term used to describe accidentally dragging another key into your stroke. E.g. if you try to write <code>-F</code> but then drag your finger to the left, you might hit <code>*F</code> instead.
=== Fingerspelling ===
Fingerspelling comprises rules that allow for output of individual characters to handle arbitrary strings of text. This is most often the case for writing individual letters of the alphabet.
=== JSON ===
JSON, in the context of stenography, is a dictionary format which maps steno strokes to translations. You will often see strokes expressed in the JSON format, such as <code>"SKP": "and"</code>.
=== Long ===
Describes a theory that has words that are written with very many strokes. This often means [[Glossary#Write Out|write outs]].
[[RWG theory]] is often regarded as being quite long.
''See also: [[Glossary#Short|Short]]''
=== Mandatory ===
A typically arbitrary brief which is the only correct way to write the word. For example, <code>-T</code> is the only outline for ''the'' in the default dictionary, with no [[Glossary#Write Out|written out]] outline.
=== Misstroke ===
A misstroke is like a "chord typo". It's when you mean to write one chord, but stroke another. Often, dictionaries have misstroke entries that are added when a stenographer frequently misstrokes an entry. For example, take the stroke <code>TKPWAOD</code> (meaning <code>GAOD</code>) which translates to <code>good</code>. Sometimes the stenographer may miss a key, so they could have a misstroke entry <code>TKPAOD</code> which would also translate to <code>good</code>. Then they are protected from these typos in regular writing. There are many misstroke entries in the default dictionary, and you must try to make sense of results when you look up words, instead of blindly accepting the shortest stroke.
=== Outline ===
One or more strokes that translate to an affix, word, or phrase, such as <code>STPHOG/TPER</code>, one possible outline for ''stenographer''.
=== Orthographic ===
Relating to spelling. For example, assigning spellings to chords can be described as orthographic. Orthographic ''rules'' guide the definition of outlines based on the written form of the output more than the sounds of the output. Orthographic ''theories'' use more orthographic rules than phonetic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more orthographic is [[Realwrite/Realtime]].
Generally, theories that heavily rely on orthographic rules end up [[Glossary#Stroke|stroke-heavy]]!
''See also: [[Glossary#Orthography|Phonetic]]''
=== Orthospelling ===
A hobbyist specific term that refers to theories that are fully orthographic. Orthospelling rules are seen as an expansion upon ''[[Glossary#Fingerspelling|fingerspelling]]'' allowing for output more than two arbitrary letters at a time. [[Shrimple]] is a popular hobbyist orthospelling engine.
=== Philly Shift ===
Shifting the right hand one column to the right, typically in order to write the normally not possible <code>-TZ</code> and <code>-SD</code> chords. This technique is named after the theory from which it originated, in the [[Philadelphia Clinic Theory]].
=== Phonetic ===
Relating to pronunciation. For example, assigning sounds to chords can be described as phonetic. Phonetic ''rules'' guide the definition of outlines based on the sounds of the words more than the written form of the output. Phonetic ''theories'' use more phonetic rules than orthographic rules, though the usage of the term is often relative to other theories. A theory that is often regarded as being more phonetic is [[Phoenix]]. Generally, theories that heavily rely on phonetic rules run into [[Glossary#Conflict|conflicts]]!
''See also: [[Glossary#Orthographic|Orthographic]]''
=== Phrase ===
A stenographic definition that outputs multiple words.
=== RTF/CRE ===
Plover can read steno dictionaries in JSON and RTF/CRE format. RTF/CRE stands for "rich text format with court reporting extensions". It is a standard format that most proprietary steno software can import from and export to. Plover can read RTF/CRE natively.
=== Shadowing ===
Shadowing is when a key registers on the steno paper unintentionally, due to pressing lightly on a key by accident. The term "shadowing" comes from the light ink impression left on the steno paper - it looks like the shadow of a letter. While the use of writing to paper continues to decline, the act of shadowing can be a bigger problem with digital systems as the machine and/or transcription software registers it as off or on - no in-between. Shadowing can be reduced or eliminated by more careful writing and by adjusting key sensitivity.
=== Stacking ===
When writing stenography, if you accidentally merge two strokes into one, it is called stacking. For example, you might try to write <code>is okay</code> with <code>S-/OBG</code> but end up with <code>SOBG → sock</code> because you stacked the strokes. To avoid stacking, the stenographer must be sure to release all keys in their chord before stroking the next. Sometimes machines are prone to stacking due to bad debouncing or sticking keys.
You might notice strokes in Plover's default dictionary that map to, for example, <code>"T-S": "{^s it}"</code>. These were entered to fix stacking issues on Mirabai's old steno machine, but aren't relevant for most users and can safely be overwritten.
=== Short ===
Describes a theory that has words that are written with few strokes. This usually means a high amount of [[Glossary#Brief|briefs]] and [[Glossary#Phrase|phrases]], and a vaguer representation of words.
See also: ''[[Glossary#Long|Long]]''
=== Steno Dictionary ===
Used by Plover or other stenotype software. Contains all the words and the strokes that produce those words. While generally these are constructed using a [[Glossary#Steno Theory|steno theory]], this can be freely modified by the stenographer. Dictionaries are a collection of entries, which map strokes to translation.
=== Steno Order ===
The 22 keys on the steno machine has an explicit "order" that gets read out, top-to-bottom, left to right. The entire steno layout is defined by <code>STKPWHRAO*EUFRPBLGTSDZ</code>.
=== Stroke ===
A group of keys that is pressed all at once in order to write a word or a part of a word.
For example, the [[Glossary#Outline|outline]] <code>STPHOG/TPER</code> for ''stenographer'' consists of two strokes, <code>STPHOG</code> and <code>TPER</code>.
Theories that use many strokes to represent multi-syllable words are considered '''stroke-heavy''' or '''stroke-intensive'''''.''
For example, if a theory used the strokes <code>STE/TPHO/TKPWRA/TPER</code> for ''stenographer,'' it would be less brieflike and represent the original word more accurately, but it requires two more strokes.
=== Steno Theory ===
A set of stenographic rules that guides the thinking of the user to determine which steno strokes will match to which words. Theories range on a spectrum from [[Glossary#Orthographic|''orthographic'']] to [[Glossary#Phonetic|''phonetic'']]. The dictionary included with Plover uses [[Plover theory]], which is based on "NYCI theory", which is further descended from StenEd. It offers a hybrid between a [[Glossary#Brief|brief-heavy]] and [[Glossary#Stroke|stroke-heavy]] theory. It is recommended to start learning with Plover theory, and you will likely learn what style you like and you can always switch later. Mirabai Knight, the founder of Plover, uses the Plover dictionary as a professional captioner.
=== Suffix folding or tucking ===
In some [[Glossary#Steno Theory|steno theories]], when writing a word that ends with a suffix (or starts with a prefix), one may include that suffix or prefix in the same stroke as another part of the word. So rather than writing "seeing" as <code>SAOE/-G</code>, one may write <code>SAOEG</code> in one stroke. Sometimes this will break steno order. For example, when <code>EPBD/-G</code> is turned into <code>EPBGD</code>. This is known as folding in or tucking.
Some commonly tucked one-key suffixes are <code>"-S": "{^s}"</code>, <code>"-D": "{^ed}"</code>, <code>"-G": "{^ing}"</code> and <code>"-R": "{^er}"</code>. A one-key prefix that's often folded in Plover's default theory as well is <code>"K-": "{con^}"</code> (where the N becomes M if the next sound is a P, B or M for historical reasons). Some multi-letter suffixes in that theory are <code>"-PLT": "{^ment}"</code>, <code>"-GS": "{^tion}"</code> and <code>"-BGS": "{^ction}"</code>.
=== Untranslate ===
Also known as an untran. When writing in stenography, your strokes map to translations. E.g. <code>KAT → cat</code>. However, if a stroke is not in your dictionary, the raw form will be outputted instead. This is called an untranslate. For example, if your dictionary doesn't have <code>KAT</code>, Plover will simply output <code>KAT</code>.
=== Word Boundary ===
The implicit spacing in between words. Spacing is inserted automatically by Plover or other steno software. As words and phrases will often sound similar to others, a stenographer needs to choose the stroke or brief appropriate for the situation with the correct word boundary.
An illustration of a word boundary '''error''' is given by the phrase "cat log". If a stenographer were to write "cat log" with Plover, by default, the system will write "catalog". This happens because "cat log" isn't a very common word-pair in English. The stenographer must explicitly write "cat (space) log". But, there are many more common cases that are handled and the stenographer must be explicit. See below for how some phonetics are differentiated:
Examples (Plover):
* "in here"; '''<code>TPH</code>'''/<code>HAOER</code> vs "insect"; '''<code>EUPB</code>'''/<code>SEBGT</code>
* "on top of"; '''<code>OPB</code>'''/<code>TOP</code>/<code>-F</code> vs "onto"; '''<code>AUPN</code>'''/<code>TO</code>
* "it is a live (wire)"; <code>T</code>/<code>S</code>/'''<code>AEU</code>'''/<code>HREUF</code> vs "it is alive"; <code>T</code>/<code>S</code>/'''<code>A</code>'''/<code>HREUF</code>
=== Write Out ===
The opposite of a [[Glossary#Brief|brief]] is writing out the word according to the more consistent rules of your theory. Very little information is omitted when words are converted to shorthand, whether it is orthographic or phonetic information. In Plover, this would refer to the fact that you are sounding a word out, rather than using its brief. E.g. writing out <code>O/PEUPB/KWROPB</code> instead of using the brief <code>P-PB</code> for the word "opinion".
This generally leads to a more [[Glossary#Stroke|stroke-heavy]] form of writing.
=== Writing ===
Professional stenographers do not like being referred to as "typists" because it normalizes the complex system that stenography is. On a steno machine, you do not "type". Instead, they call it "writing". Some stenographers are more sensitive to this than others. Generally, you "type" on a keyboard, and "write" on a steno machine. Steno machines were traditionally called "stenotypes", but that usage has died out over time.
[[Category:Stenography]]
d9acc13d96ae98cfe19627838036df9f81248c0a
Choosing a steno theory
0
1561
2364
2357
2024-08-10T00:08:19Z
Aerick
9
Revamp
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Freely available steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
=== Platinum theory ===
A commercial theory for court reporting students taught through YouTube videos.
== Commercially available steno theories ==
=== Phoenix ===
=== Magnum ===
=== StenEd ===
=== Realwrite/Realtime ===
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
b05e4c46372f935b2e617a72de46e0fccd76dc35
2367
2364
2024-08-17T03:43:50Z
Aerick
9
/* Add links to theory pages */
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Freely available steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
=== Platinum theory ===
''See also: [[Platinum theory]]''
A commercial theory for court reporting students taught through YouTube videos.
== Commercially available steno theories ==
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
=== Magnum theory ===
''See also: [[Magnum theory]]''
=== StenEd theory ===
''See also: [[StenEd theory]]''
=== Realwrite/Realtime theory ===
''See also: Realwrite/Realtime theory''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
1e6e9889f56059063709aaed83fcdc9ad5223e05
2395
2367
2024-08-19T00:22:42Z
Crorl
1668
/* Realwrite/Realtime theory */
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that English a complicated language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Freely available steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
=== Platinum theory ===
''See also: [[Platinum theory]]''
A commercial theory for court reporting students taught through YouTube videos.
== Commercially available steno theories ==
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
=== Magnum theory ===
''See also: [[Magnum theory]]''
=== StenEd theory ===
''See also: [[StenEd theory]]''
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
f59c923cc45075339ca50440c94e71ec3ffaebb0
2396
2395
2024-08-19T00:40:44Z
Crorl
1668
/* The rationale for multiple theories */
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own variations of a particular language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Freely available steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
=== Platinum theory ===
''See also: [[Platinum theory]]''
A commercial theory for court reporting students taught through YouTube videos.
== Commercially available steno theories ==
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
=== Magnum theory ===
''See also: [[Magnum theory]]''
=== StenEd theory ===
''See also: [[StenEd theory]]''
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
ef6f0e8441e5ecb1da160d3aaf3e748455f0b877
2397
2396
2024-08-19T00:40:58Z
Crorl
1668
/* The rationale for multiple theories */
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Freely available steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
=== Platinum theory ===
''See also: [[Platinum theory]]''
A commercial theory for court reporting students taught through YouTube videos.
== Commercially available steno theories ==
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
=== Magnum theory ===
''See also: [[Magnum theory]]''
=== StenEd theory ===
''See also: [[StenEd theory]]''
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
09ea4b7f5a55b36aec99218d752b0a0dbba5de23
2398
2397
2024-08-19T01:16:15Z
Crorl
1668
/* Freely available steno theories */ Moved platinum to commercial theories and renamed commercial to proprietary. Makes more sense for when we include more hobbyist steno theories.
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Complexity of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
f17be533bb7c49bd94c17a00b15821771445f46b
2399
2398
2024-08-19T07:17:48Z
Crorl
1668
/* The rationale for multiple theories */ specify that these apply specifically to English
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an extra stroke at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
cd4064579b1279bc8c706758dfc023075fec2ac2
2400
2399
2024-08-19T07:20:26Z
Crorl
1668
/* Homophones */ this is a reference to phœnix theory
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to steno outlines. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The reason for this is that language is complicated and all people speak their own individual variation of a particular language.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories can be categorized as short or long. By definition, short steno theories require fewer strokes for any given text—words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text. Short steno theories generally require more cognitive load since there is more mental effort needed to create abbreviated steno outlines. Long theories are more simple, but require fast finger speeds.
Ideally, a stenographer would have great mental agility and be able to write many strokes a second. However, people may be better with one or the other. Choosing a theory that is just right for them can pay off in the learning and speed building process.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers. It is much easier have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
086cb8b792cb50dd1de1cc42b4978730f0be4877
2401
2400
2024-08-19T07:55:52Z
Crorl
1668
/* Shorter versus longer theories */ I went on a rant on English
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple English steno theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries.
Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word.
* Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines.
* Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second.
Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default theory called Plover. It originated as Mirabai Knight’s own personal theory that she uses for stenocaptioning. As a result, it is quite short, and the default dictionary comes with many abbreviated outlines. However, there isn't a consistent method for writing complicated words with multiple syllables. In fact, some words can only be written using a brief that has to be memorized, or by using inconsistent advanced techniques. These shortfalls often lead to frustration in the learning process.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
e3443fed537565bd7c4701d73606ce2e60f1d8bb
2402
2401
2024-08-19T08:20:34Z
Crorl
1668
/* Plover theory */ I wanted to give a more complete picture of Plover theory that didn't seem to praise Lapwing as hard.
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple English steno theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries.
Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word.
* Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines.
* Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second.
Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory.
As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there.
However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
37786df117480efbe61cc6bc6119827a89f65190
2403
2402
2024-08-19T08:24:51Z
Crorl
1668
/* Plover theory */ added links to resources
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple English steno theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries.
Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand.
=== Homophones ===
First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word.
* Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines.
* Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second.
Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory.
As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there.
However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''.
For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
2d2b86362243f3f2404008e3637e2160583dc501
2404
2403
2024-08-19T08:26:21Z
Crorl
1668
/* Homophones */ link to glossary#conflict
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple English steno theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries.
Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand.
=== Homophones ===
Homophones that have different written forms cause [[Glossary#Conflict|conflicts]] for phonetic stenographic theories. First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word.
* Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines.
* Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second.
Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory.
As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there.
However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''.
For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
46ab36a4084e409c0df46fc6f0574da3a755a133
Ward Stone Ireland layout
0
1562
2365
2024-08-10T02:25:22Z
Aerick
9
Created page with "The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is: <code>STKPWHRAO*EUFRPBLGTSDZ</code> <img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500"> == History == == Chords == == Key and chord placement == The WSI layout is designed such that its steno order allows for chords that make sense phonologically. On their own, each key represents the s..."
wikitext
text/x-wiki
The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is:
<code>STKPWHRAO*EUFRPBLGTSDZ</code>
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
== History ==
== Chords ==
== Key and chord placement ==
The WSI layout is designed such that its steno order allows for chords that make sense phonologically. On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings.
However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot").
546725de627f91153025ec1d14170db6abbeef09
2389
2365
2024-08-18T23:33:53Z
Crorl
1668
/* Key and chord placement */ the WSI layout was designed for English
wikitext
text/x-wiki
The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is:
<code>STKPWHRAO*EUFRPBLGTSDZ</code>
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
== History ==
== Chords ==
== Key and chord placement ==
The WSI layout is designed such that its steno order allows for chords that follow English phonotactics (allowable sound sequences within English syllables). On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings.
However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot").
963365b1af204adc87b9059a9038a9d3e79c343f
2390
2389
2024-08-18T23:36:11Z
Crorl
1668
/* Key and chord placement */ links to English phonotactics for people that want to see more indepth reasoning behind the steno order
wikitext
text/x-wiki
The Ward Stone Ireland (WSI) layout is the standard steno layout for all mainstream English steno theories. Its [[steno order]] is:
<code>STKPWHRAO*EUFRPBLGTSDZ</code>
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
== History ==
== Chords ==
== Key and chord placement ==
The WSI layout is designed such that its steno order allows for chords that follow [[wikipedia:English_phonology#Phonotactics|English phonotactics]] (allowable sound sequences within English syllables). On their own, each key represents the sound it is labeled with. To write the word "hot", one would press <code>HOT</code>. Keys can be combined into chords to make up for the missing sounds not on the layout (e.g. "shot" is written as <code>SHOT</code>). The WSI layout allows for many of these simple combinations that match their spellings.
However, many sounds in English cannot be composed this way. Some sounds have be assigned key combinations that do not show up in English, such that there will be no ambiguity in the chord. For example, the "b" sound as in "bot" is given <code>PW</code>. Since "pw" is not a valid sound in English, it is safe to use this chord. All of these are also designed and placed such that they can be combined with other chords (e.g. combining <code>PW</code> for "b" and <code>HR</code> for "l" results in the "bl" consonant as in "blot").
ce4205066c3a59b3b4a5274b93766c2879bce427
Wayland
0
1531
2366
2310
2024-08-13T13:36:22Z
Aerick
9
Typo
wikitext
text/x-wiki
[[wikipedia:Wayland_(protocol)|Wayland]] is a display server protocol for Linux that is slowly becoming the default on many desktop distributions. It is intended to replace the old [https://en.wikipedia.org/w/index.php?title=X_Window_System X11 Window System] that has been used for decades. Wayland is not currently compatible with Plover.
Linux distributions that use GNOME or KDE Plasma 6 will run Wayland by default. This includes many of the most popular Linux distributions such as Ubuntu and Fedora. Luckily, workarounds and other approaches for using steno on Wayland systems are available.
== Switch to X11 ==
This is the easiest workaround to run Plover. This usually involves logging out and selecting the correct session type at the login screen. Unfortunately, it is impossible to provide detailed instructions on this procedure for every single Linux distribution. However, using your favourite search engine, you can find instructions for your specific setup (try "switching to X11 on <Linux distro>").
Here are two tutorials for the two most popular Linux distributions:
* [https://beebom.com/how-switch-between-wayland-xorg-ubuntu/ How to Switch Between Wayland and Xorg in Ubuntu]
* [https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ Configuring Xorg as the default GNOME session] (Fedora)
== Plover plugins ==
There are several plugins with varying degrees of success that have enabled Plover to work on Wayland systems. Some of these include:
* <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> (recommended)
* <code>[https://github.com/halbGefressen/plover-output-dotool plover-output-dotool]</code>
* <code>[https://github.com/svenkeidel/plover-wtype-output/tree/main plover-wtype-output]</code>
<code>plover-uinput</code> is recommended as it is the most straightforward to set up. It has also been confirmed to work on GNOME.
See the wiki page for set up instructions: [[plover-uinput]].
=== Xwayland ===
[[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|thumb|This error occurs on some systems that use xwayland.|408x408px]]Many applications do not work natively on Wayland, and require Xwayland to run. Plover may refuse to open on Xwayland systems and will produce the following error:
<pre>
Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'Authorization required, but no authorization protocol specified\n'
</pre>
If this occurs, run the following command before opening Plover:
<pre>
xhost +si:localuser:$USER
</pre>
To run this command automatically when opening Plover, see: [[AppImage integration#Automatically run Xwayland command|AppImage integration]]
== Javelin ==
Javelin is a keyboard firmware that features an embedded steno engine ("plug and play stenography"). It bypasses the need to install Plover (or any app) on the host machine. It is compatible with several [[Choosing a hobbyist steno writer#Table summary|commercially available steno writers]]. See the wiki page on [[Javelin]] for more details.
4f66b93a6f36001115a5f7724ad74efe17f95022
MediaWiki:Sidebar
8
5
2368
208
2024-08-17T03:46:43Z
Aerick
9
Sentence case
wikitext
text/x-wiki
* Plover
** mainpage|Main page
** https://www.openstenoproject.org/plover|Plover website (external)
** Beginner's_guide|Beginner's guide
** Installation_guide|Installation guide
** Configuration|Configuration
** Supported_hardware|Supported hardware
** Dictionary_format|Dictionary format
** Built-in_tools|Built-in tools
** Plugins|Plugins
** Invoke_plover_from_the_command_line|Command line
** Open_Steno_Project_timeline|Open Steno Project timeline
** Troubleshooting_issues|Troubleshooting issues
* Stenography
** FAQ|FAQ
** Glossary|Glossary
** Learning_stenography|Learning stenography
** Brief_ideas|Brief ideas
** Software|Software
** Steno_layouts_and_supported_languages|Steno layouts & supported languages
** List_of_available_steno_dictionaries|List of available steno dictionaries
* Miscellaneous
** The_steno_community|The steno community
** https://www.openstenoproject.org/demo/|In-browser demo
** Other_pages|Other pages
* MediaWiki
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki
* SEARCH
* TOOLBOX
* LANGUAGES
d1ba092e6e63f67434c7258ca72aab0a4d990913
Dictionary format
0
11
2369
1974
2024-08-17T03:48:37Z
Aerick
9
Aerick moved page [[Dictionary Format]] to [[Dictionary format]]: Sentence case
wikitext
text/x-wiki
== About Strokes and Dictionaries ==
If you are new to stenography:
* A ''stroke'' is a group of keyboard keys that are pressed simultaneously to produce output. As soon as all keys on the keyboard are released, the steno machine sends out that entire chord of key presses as a stroke.
* Plover converts that input into English words and phrases on the screen, by using ''dictionaries''
* with Plover, outputs are not limited to characters and punctuation symbols... Yes, a real stenographer chords emoji😅
* Steno machines makes use of either defined software command, or a meta command, for controlling spacing and capitalization.
* Every stenographer creates their own customized dictionary to supplement or amend the default dictionary that comes with a steno application, such as Plover. By default, you add your customizations to the <code>user.json</code> dictionary that comes with Plover.
== Plover's Default Dictionaries ==
Plover comes supplied with three dictionaries:
* <code>main.json</code>. This contains the default dictionary. It is based on Mirabai Knight's own personal dictionary, which follows a StenEd-style theory. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
* <code>commands.json</code>. This contains [[Dictionary Format#Plover Control Commands|Plover Control Commands]].
* <code>user.json</code>. This is available for your personal customizations. <code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is at the bottom of the dictionary list and has the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you've defined yourself, instead of trying to locate them inside the default dictionaries.
You can add extra dictionaries to Plover, as well. Dictionaries may be located on your system in any directory/folder; they do not have to be in a subdirectory/subfolder of the Plover installation.<blockquote>'''Note:''' We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially.</blockquote>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority. The dictionaries in the dictionary list are prioritised from the bottom up.
By default, the <code>user.json</code> dictionary is placed at the bottom of the dictionary list and has the highest priority. If you want new strokes to go to different dictionary (for example, you have your own dictionary already), make sure that dictionary is at the bottom of the list.{{Info|text=With Plover 4.0+, default dictionary priority is now top-down and can be changed. In the configuration settings, you can select your preferred ordering of dictionary priority to be bottom-up or top-down.}}
== Dictionary File Formats ==
Plover is (or will be) able to import dictionaries from other steno programs. Here are some technical notes on each file format.
Some formats (including those not listed here) may require installation of a dedicated plugin.
{{Info|text=There is a plugin <code>plover-python-dictionary</code> available in the [[Plugins#Via the built-in Plugins Manager (recommended)|plugins manager]] that allows you to use Python (<code>.py</code>) dictionaries. After installing the plugin, you will need to restart Plover before it will let you load Python dictionaries.}}
=== Limitations ===
There are some limitations with each format:
* RTF dictionaries will cause Plover to take longer to start up and won't have Unicode support.
* The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you will need to convert it to RTF.
* The Plover JSON format doesn't have support for stroke metadata. At the moment, Plover doesn't support reading/writing of RTF metadata.
=== json ===
The standard Plover format. Described at Dictionary format.
=== rtf (aka CRE) ===
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
=== dct (aka Stentura, Jet, MDB, Microsoft Access) ===
These are standard Microsoft Access databases (otherwise known as Microsoft Jet databases, or MDB files. They contain a single table named "Steno", which has columns named "Steno", "English", and "Flags". Each row represents a translation.
"Steno" is a text column containing the stroke, encoded as a concatenated sequence of six-digit hex strings representing bitmasks; each bit represents a key in the standard steno order
"English" is a text column giving the text translation of that stroke.
"Flags" is an integer bitmap. 0x8000 indicates a suffix; 0x4000 indicates a prefix; 0x2000 indicates that the next word should be capitalised.
Python lacks good cross-platform MDB support, so Plover reads the files using pure Python.
=== sgdct (CaseCat) ===
CaseCATalyst dictionaries have the extension ".sgdct". There is often a corresponding ".sgxml" file, but this contains no dictionary data.
Much of the detail of the file format remains unknown. Contributions and corrections are very welcome. Thanks are due to Sooty, who provided example files for dissection.
The files begin with a 640-byte header, which begins with the magic number SGCAT32. Nothing is known about header fields at present.
One or more records follow the header. Each record gives a single translation from steno to text.
The record header is 21 bytes. header[18] contains the number of strokes, and header[19] gives the number of letters in the text. Each is an unsigned byte. The purpose of all other fields in the record header is unknown at present.
The stroke follows, as a sequence of four-byte unsigned integers. Each integer is a bitmap of keys in the standard steno order, with the first "S" as the most significant bit.
Then the text follows, as ordinary ASCII text. Nothing is currently known about coding of text outside the ASCII range. Various non-ASCII characters crop up, apparently as control codes.
Finally, there are zero to three padding bytes, in order to bring us up to a four-byte boundary.
== Plover Control Commands ==
You can control some aspects of Plover with [[Dictionary Format#About Strokes and Dictionaries|strokes]]. Plover's default dictionary (<code>commands.json</code>) contains these commands:
{| class="wikitable"
!Command name
!Command
!Default Stroke
!Description
|-
|Add Translation
|<code>{PLOVER:ADD_TRANSLATION}</code>
|<code>TKUPT</code> (think DUPT for "Dictionary UPdaTe")
|Opens a translation window where you can enter a stroke and translation text to create a new dictionary entry.
|-
|Disable Output
|<code>{PLOVER:SUSPEND}</code>
|<code>PHRO*F</code> (think PLOF for "PLover OFf")
|Stop translating steno. With a keyboard machine, you will be able to type normally again.
|-
|Enable Output
|<code>{PLOVER:RESUME}</code>
|<code>PHRO*PB</code> (think PLON for "PLover ON")
|Re-enable Plover's output. You can write this stroke to switch back from your keyboard into steno mode.
|-
|Toggle Output
|<code>{PLOVER:TOGGLE}</code>
|<code>PHROLG</code> (think PLOLG, for PLOver toGGLe)
|Toggle between output being enabled and disabled.
|}
These commands are not in <code>commands.json</code> by default, but can be added to a dictionary:
{| class="wikitable"
!Command name
!Command
!''Suggested'' Stroke
!Description
|-
|Look Up Stroke
|<code>{PLOVER:LOOKUP}</code>
|<code>PHR*UP</code>
|Open a search dialog that you write a translation into to get a list of entries in your dictionaries.
|-
|Suggestions
|<code>{PLOVER:SUGGESTIONS}</code>
|<code>PHROGS</code> (think PLOSHUN) for PLOver suggesTION)
|Open and focus the plover suggestions window which will suggest alternative ways of writing
|-
|Configure
|<code>{PLOVER:CONFIGURE}</code>
|<code>PHROFG</code> (think PLOFG, for PLOver conFiG)
|Open and focus the Plover configuration window.
|-
|Focus
|<code>{PLOVER:FOCUS}</code>
|<code>PHROFBGS</code> (think PLOFKS, for PLOver focus)
|Open and focus the main Plover window.
|-
|Quit
|<code>{PLOVER:QUIT}</code>
|<code>PHROBGT</code> (think PLOKT, for PLOver '''qu'''i'''t''')
|Quit Plover entirely.
|-
|Set configuration
|<code>{PLOVER:SET_CONFIG:option:value}</code>, <code>{PLOVER:SET_CONFIG:option1:value1,option2:value2,...}</code>
|
|Set Plover config option.
|}
Example for <code>SET_CONFIG</code> Plover command:
* <code>{PLOVER:SET_CONFIG:'translation_frame_opacity':100}</code>
* <code>{PLOVER:SET_CONFIG:'start_attached':True,'start_capitalized':True}</code>
As a side effect, <code>SET_CONFIG</code> also reload the (changed) dictionaries.
== Sending Symbols ==
Since Plover 3.0.0, users can write full Unicode. You can use symbols in your JSON dictionary, or paste them into the "<kbd><samp>Add Translation</samp></kbd>" dialog (or into the dictionary manager). You can get symbols from a character insert panel in your operating system (if you have one), or you can copy and paste symbols from another application, such as a web browser.
<code>{
"SHR*UG": "¯\\_(ツ)_/¯",
"TR*PL": "{^}™",
"TPHA*ES": "n̶o̶ yes"
}</code>
== Prefix strokes ==
It's possible to select the translation for a stroke depends on whether the previous word is finished.
Given the dictionary:
<code>{
"S": "word",
"/S": "{prefix^}"
}</code>
with a stroke <code>S</code>, the translation <code>"/S": "{prefix^}"</code> is chosen; unless the previous word is not finished (for example if the previous translation is <code>{con^}</code>), then the translation <code>"S": "word"</code> is chosen.
It's possible to explicitly mark a translation as "finished" with <code>{$}</code> (or equivalently <code>{:word_end}</code>).
[https://github.com/openstenoproject/plover/blob/df65bf1c6e2e6e7f958f635f0a3922b0b7b80c63/test/test_blackbox.py#L1597-L1604 See this blackbox test for an example.]
== Text Formatting ==
=== Prefixes, Infixes, and Suffixes ===
Strokes can be attached at the beginning and/or end using the "attach" operator. You can also use some of the built-in orthographic rules that Plover uses for creating intelligent strokes.
* <code>{^}</code> is the attach operator.
* <code>{^ish}</code> is an orthographic-aware suffix that will add "ish" to the end of the previous word. E.g. <code>RED/EURB</code> will output <code>reddish</code>. Note: addition of a second "d" caused by Plover's understanding of English orthography.
* <code>{^}ish</code> is a suffix with the text outside the operator—this means that the text will simply be attached without grammar rules. Using this stroke in the previous example would give instead <code>redish</code>.
* <code>{^-to-^}</code> is an infix, e.g. <code>day-to-day</code>.
* <code>{in^}</code> is a prefix, e.g. <code>influx</code>.
* Most custom punctuation entries will take advantage of the attach operator, e.g. <code>{^—^}</code> for an emdash.
=== Glue Operator (Numbers, Fingerspelling) ===
Glue is sort of like the [[Dictionary Format#Prefixes, Infixes, and Suffixes|attach operator]] above, except that "glued" strokes only attach to neighboring "glue" strokes.
Translations containing ''only'' digits are glued, allowing you to output multiple number strokes to make a large number.
* <code>{&}</code> is the glue operator.
* <code>{&a}</code>, <code>{&b}</code>, <code>{&c}</code>, etc. are how the fingerspelling alphabet is made.
* <code>{&th}</code> is a multiletter glue stroke, which can be useful (<code>TH*</code> in the default dictionary)
Because glued translations only glue to other glued translations, they won't attach to regular words. This gives us some power because you can write:
<code>THR/-R/#H/#A/KATS</code> to get "there are 45 cats" and only <code>#H</code> (4) and <code>#A</code> (5) are "glued" to each other.
=== Capitalizing ===
Capitalizing a word means turning the first letter into a capital, e.g. proper nouns and in titles. Usually your dictionary has capitals pre-defined, but there are times when you need to capitalize a word on the go.
==== Capitalize Next Word ====
* <code>{-|}</code>
The next word will have a capitalized first letter. In the default dictionary, we have <code>"KPA": "{-|}"</code>, which will capitalize the next word; and <code>"KPA*": "{^}{-|}"</code> which omits a space and capitalizes the next word. That last stroke would let you writeLikeThis. This formatting style is called "camel case', which some programmers use in their work.
Capitalize next word can also be used in name titles, like <code>Ms. {-|}</code>.
'''Default strokes:'''
* <code>KPA</code>: <code>{-|}</code> (think "cap")
* <code>KPA*</code>: <code>{^}{-|}</code> (also suppresses space)
==== Capitalize Last Word ====
* <code>{*-|}</code>
The last stroke word will have a capitalized first letter. This is useful in case you realize that a word should be capitalized after you've written it. It can also be used in a stroke, like in <code>{*-|}{^ville}</code>. This would capitalize the last word and attach to it. This would be useful for town names on the fly, such as <code>Catville</code>.
'''Suggested stroke:''' <code>KA*PD</code>
=== Uncapitalizing ===
==== Uncapitalize Next Word ====
* <code>{>}</code>
Forces the next letter to be lowercase, e.g. <code>{>}Plover</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ER</code> (lower)
==== Uncapitalize Last Word ====
* <code>{*>}</code>
Rewrite the last word to start with a lowercase letter, e.g. <code>Plover{*>}</code> → <code>plover</code>
'''Suggested stroke:''' <code>HRO*ERD</code> (lowered)
=== Carrying Capitalization ===
* <code>{~|text}</code> or <code>{^~|text^}</code> where the attach operator is optional and the text can be changed.
In English, we have punctuation that doesn't get capitalized, but instead the next letter gets the capitalization. For example, if you end a sentence in quotes, the next sentence still starts with a capital letter! <code>"You can't eat that!" The baby ate on.</code>
In order to support this, there is a special pre/in/suffix syntax that will "pass on" or "carry" the capitalized state. You might find this useful with quotes, parentheses, and words like <code>'til</code> or <code>'cause</code>.
The default dictionary for Plover should use these operators where appropriate.
{
"KW-GS": "{~|\"^}",
"KR-GS": "{^~|\"}",
"KA*US": "{~|'^}cause",
"PREPB": "{~|(^}",
"PR*EPB": "{^~|)}"
}
For a newline, the syntax would be <code>{^~|\n^}</code>.
=== Uppercasing (CAPS) ===
See [[Dictionary Format#Output Modes|Output Modes]] for CAPS mode, which acts like CAPS lock on a regular keyboard. Alternatively, you can use a [[Dictionary Format#Keyboard Shortcuts|Keyboard Shortcut]] set to <code>{#Caps_Lock}</code> to activate the system CAPS lock like you can on your keyboard.
'''Suggested stroke:''' <code>"KA*PS": "{MODE:CAPS}"</code>
==== Uppercase Next Word ====
* <code>{<}</code>
Output next stroke in capital letters, e.g. <code>{<}cat</code> → <code>CAT</code>
'''Suggested stroke:''' <code>KPA*L</code> (cap all)
==== Uppercase Last Word ====
* <code>{*<}</code>
Rewrite last word in capital letters, e.g. <code>cat{*<}</code> → <code>CAT</code>
'''Suggested stroke:''' <code>*UPD</code>
=== Spacing ===
==== Suppress Next Space ====
* <code>{^^}</code> (or <code>{^}</code>)
See also: [[Dictionary Format#Retroactively Delete Space|Retroactively Delete Space]]
'''Default stroke:''' <code>TK-LS</code> ('''D'''e'''l'''ete '''S'''pace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
==== Manually Add a Space ====
* <code>{^ ^}</code>
See also: [[Dictionary Format#Retroactively Add Space|Retroactively Add Space]]
'''Default stroke:''' <code>S-P</code> ('''SP'''ace)
This is a special case of an infix. See also [[Dictionary Format#Prefixes, Infixes, and Suffixes|Prefixes, Infixes, and Suffixes]].
=== Canceling Formatting of Next Word ===
In order to cancel formatting of the next word, use the empty meta tag as your definition:
* <code>{}</code>
Using <code>{}</code> in front of a arrow key commands, as in <code>{}{#Left}</code>, is useful if the arrow key commands are used to move cursor to edit text. Canceling formatting actions for cursor movement prevents Plover from, for instance, capitalizing words in middle of a sentence if cursor is moved back when the last stroke, such as <code>{.}</code>, includes action to capitalize next word.
See also the [[Dictionary Format#"Do Nothing" Translation|"do nothing" translation]]
=== Format Currency ===
There is a built-in meta in Plover that allows you to format the last-written number as currency. The format is <code>{*($c)}</code> where <code>$</code> is any currency symbol you'd like, and <code>c</code> is the amount, formatted in standard currency format, with either no decimals or two. Commas are added every 3 numbers before the decimal automatically.
* <code>{*($c)}</code>: Standard English dollars
** <code>23{*($c)}</code> → $23
** <code>2000.5{*($c)}</code> → $2,000.50
* <code>{*($c CAD)}</code>: You can include other text, e.g. when specifying a currency's country
** <code>100{*($c CAD)}</code> → $100 CAD
* <code>{*(c円)}</code>: The symbol can be placed on either side of the number, which often happens in languages other than English and in certain regions.
** <code>2345{*(c円)}</code>: 2,345円
Here are some other currency symbols, in case you need to copy-paste them into your entries: £, ¥, €, $, ₩, ¢
=== Conditional ===
* <code>{=regex/text_if_match/text_if_no_match}</code>
Conditional translation depending on the following text. Outputs <code>text_if_match</code> if the following text matches the regex, otherwise outputs <code>text_if_no_match</code>. Regex is case-sensitive. For example, <code>{=[AEIOUaeiou]/an/a}</code> outputs "a" unless the next word starts with a vowel, in which case it outputs "an".
== Friendly Command Names ==
In a sufficiently-new Plover version, it's possible to use friendly names for some commands/metas.
For detailed descriptions of the commands, see the other sections.
{| class="wikitable"
!Command/macro/meta
!Equivalent
|-
|<code>{*}</code>
|<code>=retrospective_toggle_asterisk</code>
|-
|<code>{*!}</code>
|<code>=retrospective_delete_space</code>
|-
|<code>{*?}</code>
|<code>=retrospective_insert_space</code>
|-
|<code>{*+}</code>
|<code>=repeat_last_stroke</code>
|-
|<code>{^}</code>
|<code>{:attach}</code>
|-
|<code>{^word}</code>
|<code>{:attach:^word}</code>
|-
|<code>{word^}</code>
|<code>{:attach:word^}</code>
|-
|<code>{^word^}</code>
|<code>{:attach:word}</code>
|-
|<code>{&a}</code>
|<code>{:glue:a}</code>
|-
|<code><nowiki>{-\|}</nowiki></code>
|<code>{:case:cap_first_word}</code>
|-
|<code><nowiki>{*-\|}</nowiki></code>
|<code>{:retro_case:cap_first_word}</code>
|-
|<code><nowiki>{~\|word}</nowiki></code>
|<code>{:carry_capitalize:word}</code>
|-
|<code>{<}</code>
|<code>{:case:upper_first_word}</code>
|-
|<code>{*<}</code>
|<code>{:retro_case:upper_first_word}</code>
|-
|<code>{>}</code>
|<code>{:case:lower_first_char}</code>
|-
|<code>{*>}</code>
|<code>{:retro_case:lower_first_char}</code>
|-
|<code>{*($c)}</code>
|<code>{:retro_currency:$c}</code>
|-
|<code>{#shift(a)}</code>
|<code>{:key_combo:shift(a)}</code>
|-
|<code>{PLOVER:LOOKUP}</code>
|<code>{:command:LOOKUP}</code>
|-
|<code>{MODE:CAPS}</code>
|<code>{:mode:CAPS}</code>
|-
|<code>{.}</code>
|<code>{:stop:.}</code>
|-
|<code>{,}</code>
|<code>{:comma:,}</code>
|-
|<code>{$}</code>
|<code>{:word_end}</code>
|}
Note that currently the <code>{#a}</code> form will be interpreted literally in the "Strokes" text box of the Plover "Add Translation" dialog box, however entering a stroke mapped to <code>{:key_combo:a}</code> will enter the raw stroke into the text box.
== Undoable Line Breaks and Tabs ==
When you use [[Dictionary Format#Keyboard Shortcuts|keyboard shortcuts]], the asterisk/undo command on Plover will not have any effect. This is a limitation imposed by the fact that most commands will not have a meaningful undo. For example, you wouldn't "undo" a "copy" command. For this reason, <code>{#return}</code> and <code>{#tab}</code> don't work how many users would expect.
Instead, we must use special characters that can be undone by Plover for new paragraphs and erasable tabs. Specifically:
* <code>\n</code> or <code>\r</code> for line breaks.
* <code>\t</code> for tabs.
For example:
* <code>{^\n^}{-|}</code> This translation would create a line break without spacing and then capitalize the next word. It can be removed with the asterisk key.
* <code>{^\t^}</code> This translation presses the tab key without any other spacing. It can be undone with the asterisk key.
== Macros ==
Macros can be mapped from a stroke and perform operations on the stroke-level. This means that it can perform actions based on previous strokes, not necessarily on previous words or translations.
=== Undo / Delete Last Stroke ===
* <code>=undo</code>
The built-in "undo" macro is assigned to the asterisk key <code>*</code>. You can map other strokes to "undo" or "delete last stroke" by creating a stroke where the translation is <code>=undo</code>
=== Repeat Last Stroke ===
* <code>{*+}</code> A stroke mapping to this macro will send the last stroke entered. A common stroke to map to repeat-last is the bare number bar; <code>"#": "{*+}"</code>; causing <code>KAT/#/#</code> to behave like <code>KAT/KAT/KAT</code>. Repeat last stroke <code>{*+}</code> is very useful for keys that you repeat. For example, when you are moving around text in a document.
'''Suggested stroke:''' <code>#</code>
=== Toggle asterisk ===
* <code>{*}</code> A stroke mapping to this macro will toggle the asterisk key on the last stroke entered. For example, if you had this stroke in your dictionary as Number Bar + Asterisk, <code>"#*": "{*}"</code>, when you write <code>KAT/#*</code> it will behave as if you wrote <code>KA*T</code>. Toggle asterisk <code>{*}</code> is useful for when you notice that you should have included an asterisk in your last stroke. For example, you wanted to write the name "Mark" (a person's name), but you wrote "mark" (the noun/verb). At this point, you can use Toggle asterisk <code>{*}</code> to correct it. You wouldn't have to erase the word and re-stroke it (this time, with you including the missing the asterisk).
'''Suggested stroke:''' <code>#*</code>
=== Retroactively Add Space ===
* <code>{*?}</code> A stroke mapping to this macro will add a space between your last stroke and the one before that, splitting apart the two strokes. For example, if your dictionary contained <code>PER</code> as "Perfect", <code>SWAEUGS</code> as "Situation" and <code>PER/SWAEUGS</code> as "Persuasion". If you meant to write "Perfect situation", but saw your output was "Persuasion", you could force these two strokes to be split apart by using the <code>{*?}</code> stroke. This means your output would change on the screen from "Persuasion" to "Perfect situation".
'''Suggested stroke:''' <code>AFPS</code> (add space)
=== Retroactively Delete Space ===
* <code>{*!}</code> A stroke mapping to this macro will delete the space between your last stroke and the one before that. If you wrote "Basket ball" but wanted it to be "Basketball", you could force these strokes together by using the {*!} stroke. Plover will go back and remove the space before your last stroke; As a result, your output would become "Basketball".
'''Suggested stroke:''' <code>TK-FPS</code> ('''d'''elete space)
== Keyboard Shortcuts ==
Most Plover strokes are just text and formatting operators. Plover handles standard strokes really well. This allows it to handle "undoing" with the asterisk key, as well as automatically handling case and spacing. However, Plover's text and formatting strokes can't send arbitrary key strokes, such as sending keyboard shortcuts.
'''Note:''' Plover 3.1 introduces new rules for commands that differ slightly from the previous implementation. Before Plover 3.1, commands were used to send symbols because Plover didn't have full Unicode support. ''It used to be possible to send "+" by writing <code>{#plus}</code>, but the system has been updated.''
* <code>{#}</code> is the command operator.
Inside of a command block, you write in what keys you want Plover to simulate. The keys hit in command blocks won't be "undone" when using the asterisk (because you can't backspace a keyboard shortcut). You select the keys by their name. All key names will only refer to the base key. For example, to use letter keys, you just use the corresponding letter (case insensitive) separated by spaces:
* <code>{#a b c d}</code> will send "abcd" and will not affect Plover's text formatting or asterisk undo-buffer.
You can also use key names, which is needed when you are accessing a symbol key. For example, on the QWERTY layout there is an equal/plus key in the top right, which you can access by either of its names:
* <code>{#equal plus}</code> will send "==". Plover doesn't send modifiers. It just hits the key based on the name.
If you want to send symbols, though, don't use commands. Commands should be used for keyboard shortcuts only. Instead, use the symbol in your dictionary entry.
=== Modifier Names ===
If you want to use a modifier, use it by name (e.g. <code>Shift_L</code>). For convenience, all key names are case insensitive and you can optionally default to the left modifier by dropping the side selector:
{| class="wikitable"
!Modifier
!Command Key Names (case-insensitive)
|-
|Shift
|<code>Shift_L</code>, <code>Shift_R</code>, <code>shift</code>
|-
|Control
|<code>Control_L</code>, <code>Control_R</code>, <code>control</code>
|-
|Alt
|<code>Alt_L</code>, <code>Alt_R</code>, <code>alt</code>, <code>option</code>
|-
|Super
|<code>Super_L</code>, <code>Super_R</code>, <code>super</code>, <code>windows</code>, <code>command</code>
|}
For modifiers, use parentheses to delimit where the keys are pressed down.
=== Shortcut Key Names ===
Here are the key names you'll want to use:
{| class="wikitable"
!Keys
!Command Key Names (case-insensitive)
|-
|Letters
|<code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>e</code>, <code>f</code>, <code>g</code>, <code>h</code>, <code>i</code>, <code>j</code>, <code>k</code>, <code>l</code>, <code>m</code>, <code>n</code>, <code>o</code>, <code>p</code>, <code>q</code>, <code>r</code>, <code>s</code>, <code>t</code>, <code>u</code>, <code>v</code>, <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>
|-
|Accented Letters (international layouts)
|<code>udiaeresis</code>, <code>eacute</code>, etc.
|-
|Numbers
|<code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code>, <code>8</code>, <code>9</code>
|-
|Control Keys
|<code>Escape</code>, <code>Tab</code>, <code>Caps_Lock</code>, <code>space</code>, <code>BackSpace</code>, <code>Delete</code>, <code>Return</code>, etc.
|-
|F-Keys
|<code>F1</code>, <code>F2</code>, <code>F3</code>, <code>F4</code>, <code>F5</code>, <code>F6</code>, <code>F7</code>, <code>F8</code>, <code>F9</code>, <code>F10</code>, <code>F11</code>, <code>F12</code>
|-
|Common Named Keys
|<code>= equal</code><code>- minus</code><code>[ bracketleft</code><code>] bracketright</code><code>/ slash</code><code>\ backslash</code><code>' quoteright</code><code>, comma</code><code>. period</code><code>; semicolon</code><code>~ asciitilde</code><code>^ asciicircum</code><code>` quoteleft</code>[https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 …and more]
|-
|Media Keys
|'''Common''': <code>AudioRaiseVolume</code>, <code>AudioLowerVolume</code>, <code>AudioMute</code>, <code>AudioNext</code>, <code>AudioPrev</code>, <code>AudioStop</code>, <code>AudioPlay</code>, <code>AudioPause</code>, <code>Eject</code>'''Mac''': <code>MonBrightnessUp</code>, <code>MonBrightnessDown</code>, <code>KbdBrightnessUp</code>, <code>KbdBrightnessDown</code>
'''Windows''': <code>Back</code>, <code>Forward</code>, <code>Refresh</code>'''Linux''': XF86 key names are supported, for example <code>XF86_MonBrightnessUp</code> - refer to the [https://github.com/python-xlib/python-xlib/blob/master/Xlib/keysymdef/xf86.py definition file in <code>python-xlib</code>] for the key names.
|}
Consult the code for the [https://github.com/openstenoproject/plover/blob/master/plover/key_combo.py#L21 full list of supported keyboard shortcut keys].
'''Note:''' a key name will determine a key to emulate with '''no modifiers''' based on your keyboard layout. For example, let's say we want to make a keyboard shortcut to hit shift-2 which is "@" in QWERTY: <code>{#at}</code> will only press the <code>2</code> key. To get the <code>@</code> symbol, we need to add the shift key: <code>{#shift(at)}</code>, which is functionally the same as <code>{#shift(2)}</code>.
=== Example Shortcuts ===
Here are some shortcuts. They are in JSON format:
* <code>"STPH-G": "{#right}"</code> — right arrow on the keyboard, for moving the cursor to the right once
* <code>"SKWR-G": "{#shift(right)}"</code> — shift and right arrow on the keyboard, for selecting one character
* <code>"SKWR-BG": "{#control(shift(right))}"</code> — shift, control, and right arrow on the keyboard, for selecting one word to the right on Windows/Linux
* <code>"SKWR-BG": "{#option(shift(right))}"</code> — option (alt), control, and right arrow on the keyboard, for selecting one word to the right on Mac
These next strokes are not particularly useful, but they show you what you can do with the command syntax:
* <code>"TKAO*UP": "{#control(c v v v)}"</code> — copy, then paste 3 times
* <code>"SKPH-Z": "{#control(z shift(z))"</code> — program-dependent, but possibly "undo/redo". Notice how the first z has only the control operator, and the second has both the control and the shift operator.
Commands are case insensitive - adding capitals will not affect the output. <code>{#control(z shift(z))</code> is the same as <code>"{#CONTROL_L(Z SHIFT(Z))}"</code>
=== Escaping Special Characters ===
Most symbols (e.g. <code>+, =, ~, r</code>) can just be included directly in the definition. But some symbols are part of the dictionary syntax and so need to be escaped:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>{</code>
|<code>\{</code>
|-
|<code>}</code>
|<code>\}</code>
|}
<code>\</code> is a special case. It must be escaped only if there's any possible ambiguity.
Special case: <code>=content</code> might be interpreted as the invocation of a macro named <code>content</code>. Use <code>{#}=content</code> instead.
If you edit the JSON file directly rather than with Plover's built-in editor/ [[File:Translation add.svg|link=|32px]][[Built-in_Tools#Add_translation_dialog|Add translation feature]], you need to escape those characters in addition, according to JSON syntax:
{| class="wikitable"
!Symbol
!Escaped Form
|-
|<code>\</code>
|<code>\\</code>
|-
|<code>"</code>
|<code>\"</code>
|}
Example:
{| class="wikitable"
!JSON
!Plover show
!Plover input
!Plover output
|-
|<code>"ab"</code>
|<code>ab</code>
|<code>ab</code>
|<code><nowiki><a> <b></nowiki></code>
|-
|<code>"\\{"</code>
|<code>\{</code>
|<code>\{</code>
|<code><{></code>
|-
|<code>"\\\\{"</code>
|<code>\\{</code>
|<code>\\{</code>
|<code><\> <{></code>
|-
|<code>"\""</code>
|<code>"</code>
|<code>"</code>
|<code><"></code>
|-
|<code>"\\"</code>
|<code>\</code>
|<code>\</code>
|<code><\></code>
|-
|<code>"\\\\"</code>
|<code>\\</code>
|<code>\\</code>
|<code><\> <\></code>
|-
|<code>"\\\\\\"</code>
|<code>\\\</code>
|<code>\\\</code>
|<code><\> <\> <\></code>
|-
|<code>"\n"</code>
|<code>\n</code>
|<code>\n</code>
|<code><\n></code>
|-
|<code>"\\n"</code>
|<code>\\n</code>
|<code>\\n</code>
|<code><\> <n></code>
|-
|<code>"\\x"</code>
|<code>\x</code>
|<code>\x</code>
|<code><\> <x></code>
|-
|<code>"\\\n"</code>
|<code>\\n</code>
|(none)
|<code><\> <\n></code>
|-
|<code>"\\\\n"</code>
|<code>\\\n</code>
|<code>\\\n</code>
|<code><\> <\> <n></code>
|}
Column explanation:
; '''JSON:'''
:how the entry is stored in the JSON file.
; '''Plover show:'''
:how the entry is displayed in Plover [[File:Translation add.svg|link=|32px]] "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. (version 4)
; '''Plover input:'''
:how the entry can be added to the dictionary using Plover "[[Built-in_Tools#Add_translation_dialog|Add translation]]" dialog. <code>(none)</code> means it's only possible to obtain the entry by editing the JSON in an external editor.
; '''Plover output:'''
:what Plover will send to the emulated keyboard when that stroke is pressed.
=== "Do Nothing" Translation ===
You can use the keyboard shortcut syntax (<code>{#}</code>) if you want a stroke that effectively does nothing. For example: a null or canceled stroke, which doesn't affect formatting, doesn't output anything, and cannot be "undone" with the asterisk key. A stroke mapped to <code>{#}</code> will effectively do nothing but show up in your logs.
* <code>{#}</code> an effective "null" stroke.
See also: [[Dictionary Format#Canceling Formatting of Next Word|Canceling Formatting of Next Word]]
== Output Modes ==
* <code>{MODE:}</code> is the mode operator
Plover supports special character casing, such as CAPS LOCK and Title Case. It also supports replacing its implicit space with other characters. This is useful for when you want to write_in_snake_case.
'''Output modes''' are activated with a special syntax in your dictionary. They can be a stroke or just part of a stroke. They can then be turned off with a special reset command.
An example flow for CAPS LOCK might be:
# Turn on CAPS LOCK.
# Write in capital letters.
# Turn off CAPS LOCK.
However, there's nothing stopping you from building in output modes into your strokes. For example, you might want your new paragraph stroke to reset the case mode, no matter what.
=== Reset Command ===
You can reset the output mode to its default with <code>{MODE:RESET}</code>.<blockquote>'''Important''': We recommended you have a reset output mode command, so that you can always reset Plover's output mode. This is in case you change it by accident.</blockquote>
* <code>{MODE:RESET}</code>: Reset the case and space character. We recommended this for getting out of any custom output mode. For example: <code>"R-R": "{^~|\n^}{MODE:RESET}"</code> and <code>"TPEFBG": "{#escape}{MODE:RESET}"</code>
* <code>{MODE:RESET_CASE}</code>: Exit caps, lower, or title case.
* <code>{MODE:RESET_SPACE}</code>: Use spaces as normal.
=== Modes ===
There are some built-in modes you can use:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:CAPS}</code>
|THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
|-
|<code>{MODE:TITLE}</code>
|The Quick Brown Fox Jumps Over The Lazy Dog.
|-
|<code>{MODE:LOWER}</code>
|the quick brown fox jumps over the lazy dog.
|-
|<code>{MODE:CAMEL}</code>
|theQuickBrownFoxJumpsOverTheLazyDog.
|-
|<code>{MODE:SNAKE}</code>
|The_quick_brown_fox_jumps_over_the_lazy_dog.
|}
=== Custom Modes ===
You can define your own custom modes with the <code>SET_SPACE:</code> operator. This allows you to replace the space that Plover outputs with anything. Plover's snake-mode is the same as <code>SET_SPACE:_</code>.
Here are some other examples:
{| class="wikitable"
!Dictionary Syntax
!Sample Output
|-
|<code>{MODE:SET_SPACE:}</code>
|Thequickbrownfoxjumpsoverthelazydog.
|-
|<code>{MODE:SET_SPACE:-}</code>
|The-quick-brown-fox-jumps-over-the-lazy-dog.
|-
|<code>{MODE:SET_SPACE:😁}</code>
|The😁quick😁brown😁fox😁jumps😁over😁the😁lazy😁dog.
|}
== Summary of suggested commands you can cut and paste into your dictionary ==
Here is a summary of the suggested commands you can cut and paste into your personal dictionary:
<code>{
"PHR*UP":"{PLOVER:LOOKUP}",
"PHROFG":"{PLOVER:CONFIGURE}",
"PHROFBGS":"{PLOVER:FOCUS}",
"PHROBGT":"{PLOVER:QUIT}",
"KA*PD":"{*-|}",
"KA*PS":"{MODE:CAPS}",
"KPA*L":"{<}",
"*UPD":"{*<}",
"HRO*ER":"{>}",
"HRO*ERD":"{*>}",
"#":"{*+}",
"#*":"{*}",
"AFPS":"{*?}",
"TK-FPS":"{*!}"
}</code>
<blockquote>{{Info-Info|text=''Note:'' The final entry '''must not''' have a trailing comma.}}</blockquote>
[[Category:Plover]]
bb68d3c8cf5c08da85c5b608072fe66faf52b5b3
Dictionary Format
0
1563
2370
2024-08-17T03:48:37Z
Aerick
9
Aerick moved page [[Dictionary Format]] to [[Dictionary format]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Dictionary format]]
8d4ec9031e7c67adeb5d941ac6bd2d83b285c511
Built-in tools
0
12
2371
1978
2024-08-17T03:49:03Z
Aerick
9
Aerick moved page [[Built-in Tools]] to [[Built-in tools]]: Sentence case
wikitext
text/x-wiki
Plover has some useful tools that can show information while you're using it, or to make changes to its configuration or to the dictionaries. Here's a list of some of them. A list of tools you can turn on is shown in the toolbar at the top of Plover's main window.
== Configure Plover ==
The configuration window is used to change settings like which keys on the keyboard are mapped to which virtual keys in the steno system. It also lets you change whether the first word written after starting Plover is capitalized and whether it has a space before it, among other things.
== Paper tape ==
Useful to see which keys Plover thinks you're pressing. It keeps a list of strokes shown so you can see what you've written. It doesn't show strokes made before you enabled it though. This feature can be set to be enabled every time Plover starts by opening the configuration window and checking the "<kbd><samp>show paper tape</samp></kbd>" checkbox in the interface tab.
== Stroke suggestions ==
When you write words, this tool can look up the words you write and show how they can be written. Like the paper tape, it doesn't show words written before you write them, and it scrolls automatically every time a word is added. It can be enabled to be on when Plover starts by checking the "<kbd><samp>show suggestions</samp></kbd>" checkbox in the interface tab of the configuration window.
== Lookup tool ==
A window with two text fields, one that you can write words in, and one that will show strokes that translate to those words. It looks in the set of active dictionaries, and doesn't show which dictionaries each entry is found in. For a more general tool that can also look up strokes and translations, see [[Built-in Tools#Dictionary editor|dictionary editor]].
== Plugins manager ==
The plugins manager lets you install plugins. In the top of its window, there's a list of plugins. To install any of them, first select the tool and then click the ''Install/Update'' button. To uninstall a plugin, select it and click ''Uninstall''. Some changes can't take effect until you restart Plover.
Some plugins are themselves tools.
== Main window ==
The main window can be used to reconnect the machine, enable and disable output and manage dictionaries.
=== Dictionaries field ===
This is the list of open dictionaries. One on each line. Dictionaries closer to the top have higher priorities, meaning if the same input is mapped to different outputs in different dictionaries, the one higher up gets to decide what Plover outputs for that input. <br />For each dictionary, the following information is shown:
* The name of the dictionary.
* A checkbox to enable and disable the dictionary.
* If there's a star there, it's the one that new entries will go into by default.
* A number that shows the priority. Lower numbers mean higher priorities. To change the priority of a dictionary, you are able to do so in two ways as follows:
# select the dictionary , drag and drop to preferred location of priority
# select the dictionary (you can do that by clicking on the name of the dictionary in the list), then click the blue arrows below the list.
* If the dictionary can be read but not written by Plover, it'll show with a [[File:Dictionary readonly.svg|link=|32px]]padlock next to the number.
Below the list of dictionaries, there are buttons to do the following actions:
* Undo the last dictionary adding, deleting or reordering operation.
* Use the [[Built-in Tools#Dictionary editor|dictionary editor]] on the selected dictionaries. It can edit and remove entries in the dictionaries and can also be used to look up what strokes or translations are mapped to. When it shows dictionary entries, it also shows which dictionaries they are in.
* Remove a dictionary from the list.
* Add a dictionary to the list.
* [[Built-in Tools#Add translation dialog|Add an entry]] to the selected dictionary.
* [[File:Up.svg|link=|32px]]Move the selected dictionaries up on the list.
* Move the selected dictionaries down on the list.
== Dictionary editor ==
The dictionary editor can be used to to look up strokes and translations in dictionaries, and to edit or remove those entries. In the top of the window, there are two filter fields and below them is a list of dictionary entries.
At first, the list shows all entries in the dictionaries. To only show some of them, type something into the filter fields and click apply. Then the list will be filtered. To get entries with particular strokes, use the "<kbd><samp>filter by strokes</samp></kbd>" field. And to get entries that map to translations containing specific words, use the "<kbd><samp>filter by translation</samp></kbd>" field.
The strokes and translations on the list are editable.
Listed below are three buttons that can be found at the bottom left-hand side:
# [[File:Undo.svg|link=|32px]] '''Undo''' last action.
# [[File:Remove.svg|link=|32px]] '''Remove''' selected entry/entries.
# [[File:Add.svg|link=|32px]] '''Add''' a new entry.
== Add translation dialog ==
A dialog to add an entry to a dictionary. It has three fields:
* Which dictionary to add an entry to.
* The strokes to write the entry. Below this field you should see if those strokes are already mapped to anything in enabled dictionaries.
* What they should translate to. Below this field you should see any strokes already mapped to the translation.
* A cancel button that closes the dialog.
* An okay button that adds the entry and closes the dialog.
[[Category:Plover]]
57c3f95472cba689d686ab0c837e71d97c17f4e7
Built-in Tools
0
1564
2372
2024-08-17T03:49:03Z
Aerick
9
Aerick moved page [[Built-in Tools]] to [[Built-in tools]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Built-in tools]]
c14d6496bae432543213a01c14e0ecfc90257e77
Invoke Plover from the command line
0
49
2373
2149
2024-08-17T03:49:32Z
Aerick
9
Aerick moved page [[Invoke Plover from the Command Line]] to [[Invoke Plover from the command line]]: Sentence case
wikitext
text/x-wiki
__TOC__
Sometimes (for instance, to [[Plugins#Manually Installing Plugins|manually install plugins]]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
plover -s plover_plugins install plover-stenograph
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference] for other commands that can be executed.
== Windows ==
# Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>. You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"
[[File:Windows plover shortcut right click menu.png|frameless|623x623px]]
# You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."
[[File:Shift right click menu on plover console.png|frameless|617x617px]]
# Type in the following command:
.\plover_console.exe -s plover_plugins install plover-stenograph
[[File:Showing full path of command in powershell.png|left|frameless|1293x1293px]]
#
# Press Enter to run the command.
[[File:Install plugin output in powershell.png|frameless|675x675px]]
== Mac ==
# Open the Terminal app
# Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:
/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph
== Linux (AppImage) ==
# Navigate to the folder containing the AppImage
# Execute the command in the command-line (note that the filename depends on the version):
./plover.AppImage -s plover_plugins install plover-stenograph
03c1b6a299a835f180119bed463f3f74eaf06da8
Invoke Plover from the Command Line
0
1565
2374
2024-08-17T03:49:32Z
Aerick
9
Aerick moved page [[Invoke Plover from the Command Line]] to [[Invoke Plover from the command line]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Invoke Plover from the command line]]
3fc7c2d9775910312cf71375d564c6c5b61103db
Open Steno Project timeline
0
13
2375
1779
2024-08-17T03:49:54Z
Aerick
9
Aerick moved page [[Open Steno Project Timeline]] to [[Open Steno Project timeline]]: Sentence case
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.]
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard.
<!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,-->
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com/blog/ Paul Fioravanti] shares [https://invidious.lunar.icu/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
8b88fdf270de24702aebe44080e394c57e005360
Open Steno Project Timeline
0
1566
2376
2024-08-17T03:49:54Z
Aerick
9
Aerick moved page [[Open Steno Project Timeline]] to [[Open Steno Project timeline]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Open Steno Project timeline]]
fdffa70416047947a2b8f359f6738773b34cfcd5
Troubleshooting issues
0
14
2377
2298
2024-08-17T03:50:36Z
Aerick
9
Aerick moved page [[Troubleshooting Issues]] to [[Troubleshooting issues]]: Sentence case
wikitext
text/x-wiki
Some common problems and solutions are recorded here. If you’re having a problem with Plover, see if it is described here along with a solution.
Also, please make sure to check the [https://github.com/openstenoproject/plover/issues Plover bug tracker] for known reported issues.<span id="running-in-debug-mode"></span>
= Running in Debug Mode =
Follow instructions in [[Invoke_Plover_from_the_Command_Line| Invoke Plover from the command line]]. You need to invoke the command
<pre>plover --log-level debug</pre>
In particular, the exact commands are
* <code>plover_console.exe --log-level debug</code> for Windows
* <code>/Applications/Plover.app/Contents/MacOS/Plover --log-level debug</code> for macOS
* <code>./plover.AppImage --log-level debug</code> for Linux (AppImage)<span id="issues"></span>
= Issues =
<span id="general"></span>
== General ==
<span id="plover-does-not-recognize-my-usb-keyboard-or-steno-machine"></span>
=== Plover does not recognize my USB keyboard or steno machine ===
{{Info|text=Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you’ll need to configure Plover to look for your machine. See the [[Supported_Hardware |Supported Hardware page]] for configuration instructions specific to your machine.}}
If you know your machine has been configured correctly, and Plover doesn’t recognize your keyboard or steno machine:
# Confirm your keyboard or steno machine is plugged into your computer.
# On the Plover control panel, check if it states the machine is connected or disconnected.
#* If it states the machine is disconnected, press the Reconnect button (this is to the right of “connected” or “disconnected” message).
# If Plover still doesn’t recognize your machine, try closing and relaunching Plover.<span id="strokes-no-longer-appear-when-using-keyboard"></span>
=== Strokes no longer appear when using keyboard ===
If Plover is enabled with [[Glossary#arpeggiate|arpeggiating]] and strokes were previously registered, check that arpeggiating has not begun. Press <code><space></code> (by default) to toggle arpeggiate.
=== When using TX Bolt, any chord with <code>SW-</code> in it doesn’t come out right ===
Solution: in the serial settings, uncheck “Xon/Xoff” under “Flow control”. This will solve the issue where using S and W in a chord causes Plover to ignore those keys.<span id="plugins-manager"></span>
== Plugins Manager ==
===Disappearing plugins manager===
When installing some plugins (such as the <code>plover-layout display</code> plugin), the plugins manager may stop appearing.
# In the toolbar, select <code>File → Open Config Folder</code>
# Delete the <code>Plugins</code> folder
# Uninstall and reinstall Plover
===Plugins not showing in the plugins manager===
Installing plugins that aren't in the plugins manager is a greater security risk, and is therefore not recommended. If you still want to proceed with this, follow the instructions for [[Plugins#Manually Installing Plugins|manually Installing Plugins]].
== Dictionary issues ==
By default, Plover ships with three dictionaries: <code>main.json</code>, <code>commands.json</code> and <code>user.json</code>. This can be a source of confusion to new users.<span id="dictionary-priority"></span>
=== Dictionary priority ===
If two dictionaries contain the same steno strokes, Plover will use the one in the dictionary that has the highest priority.
In Plover 3.x and below, the dictionaries in the dictionary list were prioritized from the bottom up.
In Plover 4 and above, the dictionaries order is configurable, but the default is to have the highest priority dictionary at the top, and it is labeled with a star ⭐.
By default, the <code>user.json</code> dictionary is placed at the highest priority. If you want new strokes to go to a different dictionary by default (for example, you have your own dictionary already), make sure that the target dictionary is the highest priority.<span id="if-you-have-your-own-dictionary-already"></span>
=== If you have your own dictionary already ===
If you have your own dictionary already, you’ll probably want to remove <code>main.json</code> and <code>custom.json</code> and add your own dictionary. This includes existing stenographers and users of another theory (Magnum, Phoenix).
We do not recommend you remove the <code>commands.json</code> dictionary from the dictionary list. This is because Plover has some concepts that users of other steno software will not be familiar with initially. Feel free to go through <code>commands.json</code>, and remap strokes that you want to use in your own theory.<span id="about-the-default-dictionaries"></span>
== About the default dictionaries ==
=== main.json ===
<code>main.json</code> is the core default dictionary. It is based on Mirabai Knight’s own personal dictionary, which follows a StenEd-style thoery. It contains over 140,000 entries and is adequate for anyone learning stenography. Mirabai uses this dictionary professionally for her realtime work.
=== commands.json ===
<code>commands.json</code> contains some keyboard shortcuts and Plover-specific utilities. For example, the stroke to add a new translation: <code>TKUPT</code>. It also contains arrow key movements, copy and paste, and more.
Have a look inside to see some sample keyboard commands that Plover can do.
=== user.json ===
<code>user.json</code> is a blank dictionary. By default, the <code>user.json</code> dictionary is the highest priority - it is the first dictionary Plover will use. When you define new strokes, they will get added to this dictionary. This means you can see which strokes you’ve defined yourself, instead of trying to locate them inside the default dictionaries.<span id="windows"></span>
== Windows ==
<span id="unrecognized-keystrokes-and-other-strange-behavior"></span>
=== Unrecognized keystrokes and other strange behavior ===
* Disable AutoKey if you’re getting strange behavior with Plover.<span id="no-output"></span>
=== No Output ===
Double check the following:
* Your machine is connected
* Plover’s output is set to “Enabled”
* You can see strokes in the paper tape
If nothing is “typed” when you’re focused in a program like “Notepad”, something may be interfering with Plover’s ability to send keystrokes.
You can try:
* Running Plover as an Administrator
* If you are a Citrix user, reinstall Citrix and make sure to opt-out of [https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/secure/app-protection.html app protection]<span id="macos"></span>
== macOS ==
=== No output despite keys showing up in the paper tape ===
# Enable Plover's output.
# Open the paper tape and press some keys.
#* If nothing shows up, you will first need to set up your machine.
#* If you see letters showing in the paper tape, follow the rest of these instructions.
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
#* If <code>Plover</code> is already listed, remove it with the <code>-</code> button; '''do not just uncheck it!'''
# Add the <code>Plover</code> app with the <code>+</code> button.
=== Incompatibility with Karabiner Elements ===
Plover will not work if you are using [https://github.com/tekezo/Karabiner-Elements Karabiner Elements], or generally speaking any program that allow customizing the keyboard might interfere with Plover. There is unfortunately to workaround other than to disable or uninstall these programs while using Plover.
=== Unrecognized keystrokes ===
macOS has a feature where holding down a key brings up an accent menu. This can sometimes drop keys when typing quickly, such as <code>TO/FPLT</code> producing <code>t.</code> instead of <code>to.</code> To disable this, follow the instructions in this article: [https://www.tekrevue.com/tip/how-to-disable-the-character-accent-menu-in-os-x-mountain-lion/ “How to Disable the Character Accent Menu in OS X Mountain Lion”].<span id="linux"></span>
== Linux ==
=== Permission denied with Gemini PR or TX Bolt ===
''See: [[Installation Guide#Allow Access to Serial Ports|allow access to serial ports]].''
=== Missing or jumbled output ===
IBus does not handle the very fast simulated key presses of Plover. This can result in dropped or transposed letters (<code>HAT</code> becomes <code>AHT</code> or <code>AT</code>). The solution is to go open Plover's configuration dialog, navigate to the <code>Output</code> tab, and increase the <code>Key press delay</code>.
[[File:Key press delay.png|alt=key press delay field in plover's configuration|thumb|Increase the key press delay to fix dropped or transposed letters.|center]]
=== Linux dynamic keyboard layout switching is not working ===
Plover does not handle dynamic keyboard layout switching: see [https://github.com/openstenoproject/plover/issues/298 bug #298].
=== Delayed/slow output when using gnome-shell and the keyboard machine ===
It’s a gnome-shell [https://github.com/openstenoproject/plover/issues/1030 bug], unfortunately there’s no known workaround.
=== No authorization protocol error ===
If the following error occurs while trying to run Plover, your system is using Xwayland. See the wiki page on [[Wayland#Plover on Xwayland|Wayland]] for a fix.
[[File:Xwayland error.png|alt=Xwayland error that pops up when trying to run Plover|center|thumb|This error occurs on some systems running Wayland.]]
=== Plover not working on Wayland ===
Plover does not officially support Wayland. See the wiki page on [[Wayland]] for workarounds and alternatives to Plover.
a412e956c69e1e26ffdb2b0b4c3a9ad372b8e0c2
Troubleshooting Issues
0
1567
2378
2024-08-17T03:50:36Z
Aerick
9
Aerick moved page [[Troubleshooting Issues]] to [[Troubleshooting issues]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Troubleshooting issues]]
072dbe28d2485a4335619ede578443bc45b3004a
Learning stenography
0
17
2379
1877
2024-08-17T03:50:50Z
Aerick
9
Aerick moved page [[Learning Stenography]] to [[Learning stenography]]: Sentence case
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allow you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
b5f2bd5126b3fd31f63707dddfbd322b6a09ea93
Learning Stenography
0
1568
2380
2024-08-17T03:50:50Z
Aerick
9
Aerick moved page [[Learning Stenography]] to [[Learning stenography]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Learning stenography]]
50f65a3b3a17e983e60ef1c5b4f33254c88e892f
Steno layouts and supported languages
0
19
2381
2151
2024-08-17T03:52:13Z
Aerick
9
Aerick moved page [[Steno Layouts and Supported Languages]] to [[Steno layouts and supported languages]]: Sentence case
wikitext
text/x-wiki
A chorded system, or ''system'' for short, is a set of rules for Plover that determines the keys, language rules, and default dictionaries in Plover. '''System Plugins''' allow Plover to support different machine types and languages other than English.
The [[wikipedia:Stenotype|American Ward Stone Ireland Stenotype]] is the default layout in Plover, and what we teach and recommend by default. However, there are many different chorded systems worldwide and some of them have been implemented in Plover.
Note that not all of these systems have been fully implemented; many of them are probably not going to be implemented in Plover, but they have been listed so that you may use them as a reference should you choose to create your own layout/system.
For systems proposed for implementation, check out the [https://github.com/openstenoproject/plover/issues?q=is%3Aopen+label%3Aplugin-candidate+label%3Asystems issues list].
{| class="wikitable"
|-
|🔴
|Not supported in Plover
|-
|🟠
|Work in progress, not actively updated or maintained
|-
|🟡
|Work in progress
|-
|🟢
|Stable and available for Plover
|}
== Languages ==
* English:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
** [[Steno Layouts and Supported Languages#Phenrsteno|Phenrsteno]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
** [[Steno Layouts and Supported Languages#Jackdaw|Jackdaw]]
** [[Steno Layouts and Supported Languages#Kinglet|Kinglet]]
* Chinese, Mandarin (國語 / 普通话):
** [[Steno Layouts and Supported Languages#Yawei|Yawei]]
** [[Steno Layouts and Supported Languages#EXun|EXun]]
** [[Steno Layouts and Supported Languages#Suoheng|Suoheng]]
* Chinese, Cantonese (粵語):
** [[Steno Layouts and Supported Languages#SanSan|SanSan]]
** [[Steno Layouts and Supported Languages#MaaJik|MaaJik]]
* Czech / Čeština:
** [[Steno Layouts and Supported Languages#Czech Stenograph|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
** [[Steno Layouts and Supported Languages#Plover Czech|Plover Czech]]
* Danish / Dansk: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Dutch / Nederlands:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Velotype|Velotype]]
* Finnish / Suomi:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* French / Français:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
* German / Deutsch:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
** [[Steno Layouts and Supported Languages#German Syllatype|Syllatype]]
* Greek / Ελληνικά: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hebrew / עברית: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Hindi / हिन्दी: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Italian / Italiano:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Michela|Michela]]
* Japanese / 日本語:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Sokutaipu|Sokutaipu]]
** [[Steno Layouts and Supported Languages#StenoWord|StenoWord]]
** [[Steno Layouts and Supported Languages#Hachidori|Hachidori]]
** [[Steno Layouts and Supported Languages#Frag's Japanese System|Frag]]
* Korean / 한국어:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Korean CAS|CAS]]
** [[Steno Layouts and Supported Languages#Korean Sorizava|Sorizava]]
* Polish / Polski: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Portuguese / Português: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Russian / Русский:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Slovak / Slovenčina: [[Steno Layouts and Supported Languages#Trillo|Trillo]]
* Spanish / Español:
** [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
** [[Steno Layouts and Supported Languages#Grandjean|Grandjean]]
** [[Steno Layouts and Supported Languages#Especias|Especias]]
* Swedish / Svenska: [[Steno Layouts and Supported Languages#Possum Palantype|Palantype]]
* Thai / ภาษาไทย: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Turkish / Türkçe: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
* Vietnamese / Tiếng Việt: [[Steno Layouts and Supported Languages#Stenotype (Ireland)|Stenotype]]
== Stenotype (Ireland) ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-0.png?raw=true" width="500">
The default system in Plover. Used internationally for English-language transcription, invented in the United States in 1913.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Plover'''
|Mirabai Knight
|English
|Phonetic
|Built-in
|[https://github.com/openstenoproject/plover/blob/master/plover/assets/main.json 147k entries]
|[[Learning Stenography|Learning Resources]]
|-
|🟢 '''Lapwing'''
|[https://github.com/aerickt Aerick]
|English
|Phonetic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/lapwing-base.json 130k entries]
|[https://lapwing.aerick.ca/ Learning Resources]
|-
|🟡 '''Cocoa'''
|[https://github.com/Kaoffie Kaoffie]
|English
|Phonetic
|Built-in
|
|
|-
|🟢 '''LaSalle'''
|Claire Lefebvre-Yelle
|French
|Phonetic
|Built-in
|[https://github.com/morinted/la_tao_dictionary 4.2k entries]
|Non-realtime-capable theory, taught at the ''École de sténographie judiciaire du Québec''
|-
|🟡 '''Pluvier'''
|[https://github.com/Vermoot Vermoot]
|French
|Phonetic
|
|
|Realtime-capable theory based on LaSalle
|-
|🟢 '''Easy Korean Steno'''
|Peter Park
|Korean
|Orthographic
|Requires [https://github.com/openstenoproject/plover_python_dictionary plover-python-dictionary]
|[https://github.com/petercpark/easy_korean_steno/blob/master/easy_Korean_steno_chorded.py Python Dictionary]
|
|-
|🟢 '''Stanley's'''
|[https://github.com/stanographer Stanley Sakai]
|Spanish
|Phonetic
|Built-in
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json 12k entries]
|
|-
|🟢 '''EO Variant'''
|[https://github.com/roskoff Eliseo Ocampos]
|Spanish
|Phonetic
|[https://github.com/roskoff/plover_spanish_system_eo_variant plover-spanish-system-eo-variant]
|71k entries
|Developed for the default Plover layout, proposes a syllabic system trading-off a little of abbreviations for consistent rules.
|-
|🔴 '''Marino'''
|
|Spanish
|Phonetic
|
|
|Spanish theory used in the Argentine Senate, along with Spanish Grandjean.
[https://taquigrafica.ucoz.net/publ/edicion_numero_01/2-1-0-14 Overview]
[https://www.facebook.com/stenocap Facebook Page]
|-
|🟢 '''Trillo Finnish'''
|Priscilla Trillo
|Finnish
|Phonetic
|
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/Suomeksi.rtf 49k entries]
|[https://github.com/Plover-Trillo/pikakirjoitus/blob/master/PIKAKIRJOITUS%20SUOMEKSI.pdf Textbook] (in Finnish)
|-
|🟢 '''Aerick's'''
|[https://github.com/aerickt Aerick]
|Vietnamese
|Orthographic
|Built-in
|[https://github.com/aerickt/steno-dictionaries/blob/main/viet.json 7k entries]
|[https://github.com/aerickt/steno-dictionaries/wiki/Vietnamese-Steno Learning Resources]
|-
|🟠 '''plover-vi'''
|user202729
|Vietnamese
|Orthographic
|[https://github.com/user202729/plover_vi <code>plover-vi</code>]
|
|Complete system with in built phrasing, but no longer working or maintained.
|-
|🟡 '''Hindi Devanagari'''
|[https://github.com/winstond/hind_plover_dictionary winston]
|Hindi
|Phonetic
|N/A
|[https://github.com/winstond/hind_plover_dictionary 1,404 entries]
|[https://github.com/winstond/hind_plover_dictionary Home Page]
|}
=== Shavian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-shav.png?raw=true" width="500">
Shavian is an alternate alphabet for English; the Shavian Stenotype is a steno system designed to be used on a regular English Stenotype keyboard.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Magpie'''
|Lynn (Ruma)
|English (Shavian)
|Orthographic
|
|
|Capable of both Shavian and orthodox (Latin script) translation
|}
=== Brazilian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/pt-braz.png?raw=true" width="500">
Brazilian Portuguese system used by Paulo Paniago, published in the textbook ''Transcrição em Tempo Real: Teoria da Estenotipia compatível com o computador''. Also included in some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Brazilian Stenograph'''
|Randall Adam Czerenda, Jucineia J. de Andrade Pereira
|Portuguese
|Phonetic
|<code>[https://github.com/morinted/plover_portuguese plover-portuguese]</code>
|4k entries<nowiki><br></nowiki>(available on the Plover Discord)
|}
=== Czech Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-sten.png?raw=true" width="500">
The Czech layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Czech Stenograph'''
|
|Czech
|Phonetic
|}
=== Greek Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/el-sten.png?raw=true" width="500">
The Greek layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Greek Stenograph'''
|
|Greek
|Phonetic
|}
=== Hebrew Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/he-sten.png?raw=true" width="500">
The Hebrew layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Hebrew Stenograph'''
|
|Hebrew
|Phonetic
|}
=== Turkish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/tr-sten.png?raw=true" width="500">
The Turkish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Turkish Stenograph'''
|
|Turkish
|Phonetic
|}
=== Russian Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-sten.png?raw=true" width="500">
The Russian layout that built into some Stenograph/Stentura machines. Not much is known about this layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Russian Stenograph'''
|
|Russian
|Phonetic
|}
=== Spanish Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-sten.png?raw=true" width="500">
The Spanish layout that comes built-in on some Stenograph machines, including the latest Luminex II.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Spanish Stenograph'''
|
|Spanish
|Phonetic
|}
=== German Stenograph ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-plov.png?raw=true" width="500">
German stenography system for Plover based on the not realtime capable theory of the book "Deutsches System der computerkompatiblen Stenografie". This book can be found in the university library of Dresden and can be read via interlibrary loan. This is also the system that is built into some Stenograph machines.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''German Stenograph'''
|
|German
|Phonetic
|<code>[https://github.com/percidae/plover_german plover-german]</code>
|}
=== Regenpfeifer ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-rege.png?raw=true" width="500">
A German steno system based on a modified English stenotype layout; the <code>-Z</code> key is replaced with <code>-N</code>.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Regenpfeifer'''
|[https://github.com/mkrnr Martin Körner]
|German
|Phonetic
|[https://github.com/mkrnr/plover_regenpfeifer <code>plover-regenpfeifer</code>]
|219k entries
|[https://github.com/mkrnr/regenpfeifer Dictionary generator]
|}
=== German Syllatype ===
A syllabic and orthographic system with the mission to be more intuitive and easy to learn.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Syllatype'''
|[https://github.com/YAMEROOOO YAMERO]
|German
|Orthographic
|[https://github.com/YAMEROOOO/plover-german-syllatype plover-german-syllatype]
|5k+ entries (syllables)
|
|}
=== 42triangles' Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-42tr.png?raw=true" width="500">
Simple kana input system designed to work alongside the English layout to input Japanese without switching steno systems.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''42triangles' Kana System'''
|42triangles
|Japanese
|Orthographic (Mora + Coda)
Romaji-only
|
|
|Relies on a user IME
|}
=== Willem's Kana System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-will.png?raw=true" width="500">
A way to write Japanese kana in steno. This is not focused on speed; instead it is meant to be easy to learn for English steno users while still being reasonably efficient. It uses the standard English layout.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Kana System'''
|[https://github.com/Willem3141 Willem Sonke]
|Japanese
|Orthographic (Mora + Coda)<nowiki><br></nowiki>Romaji-only
|[https://github.com/Willem3141/plover_japanese_kana <code>plover-japanese-kana</code>]
|
|Relies on a user IME
|}
=== Danish Hjejle ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/da-hjej.png?raw=true" width="500">
A Danish steno dictionary based on the standard English layout with slight modifications. While the layout is different from the standard English one, this system does not come with a separate system plugin and uses the default English one, so the tape output might not reflect the actual phonetic value of each stroke.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Hjejle'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Danish
|Phonetic
|Built-in
|[https://github.com/SeaLiteral/hjejleOrdbog 5k entries]
|}
=== Melani ===
==== Italian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mela.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Melani'''
|
|Italian
|Orthographic
|[https://github.com/benoit-pierre/plover_melani <code>plover-melani</code>]
|
|[https://www.stenolab.it/ Stenolab]
|}
==== Spanish ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-mela.png?raw=true" width="500">
Spanish system based on the Melani Italian layout, used at MQD.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''MQD Melani'''
|[https://github.com/nvdaes Noelia Ruiz Martínez]
|Spanish
|Phonetic
|[https://github.com/nvdaes/plover_spanish_mqd <code>plover-spanish-mqd</code>]
|[https://github.com/nvdaes/plover_spanish_mqd/tree/main/plover_spanish_mqd 11k entries]
|}
==== Russian ====
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-mela.png?raw=true" width="500">
Not much is known about this layout; see [https://github.com/openstenoproject/plover/issues/492 th][https://github.com/parnikkapore/plover_thsteno plover-thsteno]is discussion about Russian steno.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Melani'''
|
|Russian
|Phonetic
|}
=== Thai Steno ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/th-parn.png?raw=true" width="500">
A work-in-progress Thai steno system.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Thai Steno'''
|Parnikkapore
|Thai
|Phonetic
|[https://github.com/parnikkapore/plover_thsteno <code>plover-thsteno</code>]
|}
=== Jade's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-jade.png?raw=true" width="500">
Dutch steno system that uses a modified version of the English stenotype layout with one extra <code>G</code> key on the left.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jade's Dutch System'''
|[https://github.com/Jade-GG Jade Geels]
|Dutch
|Phonetic
|[https://github.com/Jade-GG/Plover_Dutch <code>plover-dutch</code>]
|3.4k entries
|}
=== Willem's Dutch System ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/nl-will.png?raw=true" width="500">
Dutch steno system that uses a modified English stenotype layout. It was made to be as similar as possible to the default English system to minimize confusion between the two; nevertheless, quite a few differences are unavoidable to make the system practical.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Willem's Dutch System'''
|[https://github.com/Willem3141 Willem Sonke]
|Dutch
|Phonetic
|<code>[https://github.com/Willem3141/plover_dutch plover-dutch]</code>
|7.7k entries
|}
== Grandjean ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fr-gran.png?raw=true" width="500">
The Grandjean Stenotype was created in 1909; it is also known as the "Continental" layout by some manufacturers and is the preferred phonetic system in France (The orthographic Velotype system is more commonly used for transcribing many TV programs and broadcasts).
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Grandjean'''
|
|French
|Phonetic
|[https://github.com/stenomax/plover_grandjean <code>plover-grandjean</code>]
|[https://github.com/azizyemloul/plover-france-dict 690k+ entries]
|[https://github.com/azizyemloul/plover-france-dict GitHub]
|-
|🔴 '''Grandjean'''
|
|Spanish
|Phonetic
|
|
|[http://www.estenotipiaasociacion.com/ Asociacion Española de Estenotipistas]
|}
== Michela ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/it-mich.png?raw=true" width="500">
A piano-like keyboard layout, widely used in Italy. The English adaptation is drawn from the "Method for the English language" included in the machine's 1878 American patent.
{| class="wikitable"
|+
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Michela'''
|Sillabix
|Italian
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano 103k entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Teoria%20Michela%20per%20l'italiano Manual]
|-
|🟡 '''Michela'''
|Sillabix
|English
|Phonetic
|[https://github.com/benoit-pierre/plover_michela <code>plover-michela</code>]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/blob/main/Michela%20theory%20for%20English%20(under%20construction)/Michela-English%20sample.json 150 entries]
|[https://github.com/Sillabix/Sistema_Michela-Michela_system/tree/main/Michela%20theory%20for%20English%20(under%20construction) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|Italian
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[http://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ITA)/Midi4Text%20(ITA)%20main%20(ver.1.0).json 95k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ITA) Manual]
|-
|🟡 '''Midi4Text'''
|Sillabix
|English
|Orthographic
|[https://github.com/nsmarkop/plover_midi4text <code>plover-midi4text</code>]
|[https://github.com/Sillabix/Midi4Text/blob/master/Midi4Text%20(ENG)/Midi4Text%20main%20(eng)%20(1.3.8).json 159k entries]
|[https://github.com/Sillabix/Midi4Text/tree/master/Midi4Text%20(ENG) Manual]
|}
== Possum Palantype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-pala.png?raw=true" width="500">
The [http://www.openstenoproject.org/palantype Possum Palantype] is a system invented in the UK which was optimized to have readable shorthand notes (the untranslated output). It has more keys than the Ireland layout. It is still used by some [[wikipedia:Speech-to-text_reporter|STTRs]] worldwide for writing in English.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Palantype'''
|
|English
|Phonetic
|[https://github.com/morinted/plover_palantype <code>plover-palantype</code>]
|21k entries
|[http://www.openstenoproject.org/palantype/ Learn Palantype]
|-
|🔴 '''Swedish Palantype'''
|
|Swedish
|Phonetic
|<code>[https://github.com/stenoshrink/plover_swedish_palantype plover-swedish-palantype]</code>
|87k entries
|[https://github.com/stenoshrink/plover_swedish_palantype/tree/master/Swedish%20theory Swedish Theory]
|}
=== Plover German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-pala.png?raw=true" width="500">
German steno system based on the Possum Palantype layout with two additional keys.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''German Palantype'''
|
|German
|Phonetic
|[https://github.com/percidae/plover_palantype_german <code>plover-palantype-german</code>]
|85k entries
|}
=== Ruben Moor's German Palantype ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/de-gpal.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''German Palantype'''
|Ruben Moor
|German
|Phonetic
|
|100k entries, with plans to expand to 2 million
|[https://palantype.com/ Tutorial]
|}
== Trillo ==
=== Trillo Russian ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/ru-tril.png?raw=true" width="500">
A realtime theory for Russian writing based on the Tréal machine.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo Russian'''
|Priscilla Trillo
|Russian
|Phonetic
|[https://github.com/morinted/plover_russian_trillo <code>plover-russian-trillo</code>]
|15k entries
|[https://github.com/openstenoproject/plover/files/1533593/Russian.Theory.-.ARA.doc.zip Textbook] (in mixed English/Russian)
|}
=== Trillo West Slavic ===
<img src="https://user-images.githubusercontent.com/7952620/191169996-5b53de4e-7cd0-4382-8a7c-e3a3e4a6283b.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Trillo West Slavic'''
|Priscilla Trillo
|Czech, Slovak, Polish
|Phonetic
|
|
|[https://github.com/Plover-Trillo/WestSlavicStenography/releases/tag/%23SlavicLanguages Textbook]
|}
== Yawei ==
=== Yawei ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-yawe.png?raw=true" width="500">
Yawei is the most commonly used Chinese stenotype system - it is widely used in Mainland China and Taiwan and uses Pinyin without tones as its main way of inputing characters; learners are required to memorize the positions of homophones based on their position in a frequency-based selection menu for fast character entry.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Yawei''' (亚伟)
|
|Mandarin (Traditional / Simplified)
|Symmetric Toneless Pinyin
|
|
|[https://zh.wikipedia.org/wiki/%E4%BA%9A%E4%BC%9F%E9%80%9F%E5%BD%95 Wikipedia]
|}
=== MaaJik ===
<img src="https://user-images.githubusercontent.com/7952620/191170046-445a18a1-669b-4d58-b26c-cbc04cc648f5.png" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''MaaJik''' (孖翼)
|[https://github.com/sammdot Sammi de Guzman], [https://github.com/vatnid Samuel Lo]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|[https://github.com/sammdot/plover-maajik <code>plover-maajik</code>]
|[https://github.com/sammdot/plover-maajik/tree/main/maajik/dictionaries 314k entries]
|}
=== SanSan ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/yue-sans.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''SanSan''' (珊々)
|[https://github.com/sammdot Sammi de Guzman]
|Cantonese (Traditional)
|Symmetric Toneless Jyutping
|
|
|[https://steno.sammdot.ca/explainers Steno Explainers]
|}
=== TCIM ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-tcim.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''TCIM''' (千鳥詞注)
|[https://github.com/Quisette Quisette C]
|Mandarin (Traditional)
|Symmetric Toneless Zhuyin
|[https://github.com/Quisette/plover-TCIM <code>plover-tcim</code>]
|}
== EXun ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-exun.png?raw=true" width="500">
EXun is a Mandarin steno system used in Mainland China. Not much is known about it other than the fact that it is based on pinyin and uses a structure system for individual character input.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''EXun''' (E 讯)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Suoheng ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zh-suoh.png?raw=true" width="500">
Very little is known about the Suoheng system and there are no plans to implement it in Plover.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Suoheng''' (索恒)
|
|Mandarin (Simplified)
|Symmetric Toneless Pinyin
|}
== Korean CAS ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-cas.png?raw=true" width="500">
The Computer Aided Steno-machine, or CAS, was developed by [http://www.koreasteno.com/ Korea Steno] and features one of the two modern stenography systems for Korean in use today.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''CAS'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern C")
|
|[https://github.com/nsmarkop/plover_korean/tree/master/plover_korean/system/cas Theory documentation]
|}
== Korean Sorizava ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/kr-sori.png?raw=true" width="500">
Sorizava, developed by a [http://www.sorizava.co.kr/ company of the same name], is the second of the modern stenography systems for Korean in use today and the more recent to have been created.
The Sorizava system is not currently under development. There are partial pieces of an implementation in <code>[https://github.com/nsmarkop/plover_korean plover-korean]</code> but outside of a partial dictionary no theory materials have been obtained to progress further.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🔴 '''Sorizava'''
|
|Korean
|Orthographic (Initial/Medial/Final) with Briefs
|[https://github.com/nsmarkop/plover_korean plover-korean] ("Korean Modern S")
|
|
|}
== Sokutaipu ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-soku.png?raw=true" width="500">
Also known as the Stentura (ステンチュラ) layout. The two sides are symmetric and are each in charge of a syllable, while the thumb is in charge of connecting the two sides; there are also one-side briefs that can be mirrored on the other side or merged.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Sokutaipu''' (ソクタイプ)
|
|Japanese
|Semi-Symmetric 2 Mora + 1 Coda
Pure Kana
|[https://github.com/na4zagin3/plover_japanese_sokutaipu <code>plover-japanese-sokutaipu</code>]
|365k entries
|[http://hoangmoc123.d.dooo.jp/sokutaipu.html Kana table]
|}
== StenoWord ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-sten.png?raw=true" width="500">
The preferred Japanese steno system for NHK live captions; the left hand is for consonants and the right hand is for vowels.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''StenoWord''' (ステノワード)
|
|Japanese
|Orthographic 1-Syllable
Pure Kana
|<code>plover-japanese-stenoword</code>
|2.6k entries
|[http://hoangmoc123.d.dooo.jp/Stenoword.html Kana table]
|}
== Frag's Japanese System ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-frag.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Frag's Japanese System'''
|Frag
|Japanese
|Symmetric 2 Mora + 2 Coda
Stucture-based kanji conversion
|}
A Japanese steno system created for the Georgi machine; the layout is symmetrical to allow the user to type one kanji on'yomi on each side. This system also addresses the problem of inaccurate kanji conversions in existing systems by introducing a way for users to directly input kanji using a structure-based system where most common kanji can be entered in just one stroke.
This is the updated version of the Japanese layout available on TypeyType.
== Hachidori ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/jp-hach.png?raw=true" width="500">
Japanese steno system created to fix all the downsides of Sokutaipu and introduce an intuitive Kanji input system. The system is symmetrical and each side is capable of inputting a full on'yomi; the layout is designed to keep as many keys from the English layout in the same position as possible whilst also maintaining compatibility with as many hobbyist keyboards as possible.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟡 '''Hachidori''' (はちどり)
|[https://github.com/Kaoffie Kaoffie]
|Japanese
|Symmetric 2 Mora + 2 Coda
|}
== Velotype ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/zz-velo.png?raw=true" width="500">
The Velotype is an orthographic system designed to support many European languages. It has also been implemented as a separate app in [https://github.com/kqr/qweyboard Qweyboard] by kqr.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Velotype'''
|
|English, Dutch
|Orthographic
|[https://github.com/AlexandraAlter/plover_syllabic_chording <code>plover-syllabic-chording</code>]
|
|[https://www.velotype.com/en/homepage-eng/ Official website]
|}
== Jackdaw ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-jack.png?raw=true" width="500">
An orthographic system based entirely on spelling rather than phonetics, allowing the user to type any word as long as they know the spelling.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Jackdaw'''
|
|English
|Orthographic
|<code>[https://github.com/user202729/plover-jackdaw-alt1 plover-jackdaw-alt1]</code>
|
|[https://www.openstenoproject.org/learn-plover/jackdaw.html Learn Plover! Jackdaw tutorial]
|}
== Kinglet ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-king.png?raw=true" width="500">
Kinglet was an attempt to create a spelling-based steno system that would have a theoretical speed equal to Plover (about 1 word per stroke). It succeeds in doing this at the cost of a high degree of finger contortion and accuracy in each individual finger, making it difficult to use.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Kinglet'''
|Zachary Brown
|English
|Orthographic
|[https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA/edit?resourcekey=0-6XylRvd298I4w4OVUc-IDg Plover 2.5.8 modified for Kinglet]
|
|[https://www.openstenoproject.org/learn-plover/kinglet-a-letter-based-stenotype-system.html Learn Plover! Kinglet tutorial]
|}
== Phenrsteno ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/en-phen.png?raw=true" width="500">
Phenrsteno is a machine shorthand theory implemented as a system for Plover. It's designed for non-rhotic accents—British English in particular—but really anyone might like to use it or adapt it to their own idiolect.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Phenrsteno'''
|[https://github.com/chambln Gregory Chamberlain]
|English
|Phonetic
|[https://github.com/chambln/plover-phenrsteno <code>plover-phenrsteno</code>]
|15k entries
|[https://github.com/chambln/plover-phenrsteno/wiki Phenrsteno wiki]
|}
== Plover Czech ==
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/cs-plov.png?raw=true" width="500">
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟠 '''Plover Czech'''
|[https://github.com/lambdadog Ashlynn Anderson]
|Czech
|Phonetic
|[https://github.com/lambdadog/plover_czech <code>plover-czech</code>]
|}
== Especias ==
=== Finnish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/fi-espe.png?raw=true" width="500">
An orthographic system (spelling-based) for Finnish capable of writing Swedish loadwords. The layout allows writing two "vowels" and two "consonants" per stroke. The available consonants include a few consonant clusters, and the first vowel must be from a list of mostly short vowels and the second vowel is chosen from one of two lists to match the frontness of the first vowel.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Finnish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
=== Spanish Especias ===
<img src="https://github.com/Kaoffie/steno_diags/blob/master/converted/es-espe.png?raw=true" width="500">
A layout that allows writing two "vowels" and two "consonants" per stroke. It uses the same layout as Finnish, except for one of the colon keys being replaced with an s to write plurals.
{| class="wikitable"
!
!Author
!Language
!Type
!Plugin
!Dictionary
!Notes
|-
|🟢 '''Especias'''
|[https://github.com/SeaLiteral Lars Rune Præstmark]
|Spanish
|Orthographic
|Built-in
|[https://github.com/SeaLiteral/especias Dictionary]
|}
[[Category:Stenography]]
d57871c59ba5570c63657b7d8f213090fa896668
Steno Layouts and Supported Languages
0
1569
2382
2024-08-17T03:52:13Z
Aerick
9
Aerick moved page [[Steno Layouts and Supported Languages]] to [[Steno layouts and supported languages]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[Steno layouts and supported languages]]
99f8de75c188873da1640f88624ba35afb8429bf
List of available steno dictionaries
0
20
2383
154
2024-08-17T03:52:42Z
Aerick
9
Aerick moved page [[List of Available Steno Dictionaries]] to [[List of available steno dictionaries]]: Sentence case
wikitext
text/x-wiki
Plover comes with a free 140,000 word steno dictionary. You can add other dictionaries to Plover, for foreign languages, specialist terminologies, special projects etc.
In addition to creating your own personal dictionaries, you can download free, open source steno dictionaries that have been developed by others. You'll find links to many of these below.
== Stenodict ==
You'll find many free, open source steno dictionaries at the [https://www.openstenoproject.org/stenodict/ Stenodict] website.
{| class="wikitable"
!Purpose
!Author
!Description
|-
|Arrows
|Ted Morin
|Symbolic arrows → → made easy
|-
|Cross Platform Movement
|Ted Morin
|Movement and selection across Mac, Windows, and Linux
|-
|Di’s Mac Movement
|Diana MacDonald
|Extensive Mac movement and selection
|-
|Di’s Vim Commands
|Diana MacDonald
|Vim and steno were made for each other
|-
|Emoji
|Ted Morin
|Complete Emoji dictionary 😃
|-
|General Command Line
|Diana MacDonald
|Briefs and entries for terminal users
|-
|Left Hand Modifier Keys
|Achim Siebert
|Left-hand keyboard shortcuts in only two strokes
|-
|Left-side Mac Movement
|Achim Siebert
|Left movement shortcuts with selection for Mac
|-
|Markdown
|Ted Morin
|Best markup language meets best text entry system
|-
|Pokémon
|Ted Morin
|First 151 Pokémon written with Plover theory
|-
|Spectacle
|Ted Morin
|Window management with Spectacle, the free application for OS X
|-
|UK Spellings
|Ted Morin
|Replace US spellings in Plover's default dictionary
|-
|Unspaced Punctuation
|Diana MacDonald
|Punctuation with all the spaces suppressed
|-
|Vim Captioning
|Mirabai Knight
|Useful realtime captioning commands for Vim
|}
== Stanley Sakai's Steno dictionaries ==
Stanley Sakai's repository on GitHub - [https://github.com/stanographer/steno-dictionaries Stanley's Steno Dictionaries]
{| class="wikitable"
!Language
!Description
|-
|braille.json
|A starter dictionary for steno-based Braille input.
|-
|smalldict.json
|Starter dictionary Mirabai gave Stan as a template (not actively updated or used).
|-
|stan-italiano.json
|Dictionary started when doing an Italian class. Not very developed.
|-
|stanespanol.json
|Main Spanish steno dictionary.
|-
|stanmain.json
|His main English dictionary.
|-
|stanplover.json
|Additional entries to correct formatting errors caused by RTF -> JSON conversion.
|}
== Diana MacDonald's repository ==
[https://github.com/dimonster/plover-dictionaries Diana MacDonald's dictionaries]. These include symbols, currency, smart punctuation, design, and coding dictionaries.
== Other dictionaries ==
* [https://github.com/EPLHREU/emily-symbols Emily's Symbol Dictionary] and [https://github.com/EPLHREU/emily-modifiers Emily's Modifier Dictionary]. The first allows you to type over 100 symbols with adjustable spacing and capitalization, the second allows you to input arbitrary keyboard shortcuts.
* [https://github.com/Jade-GG/plover_phrasing/ Jade's Phrasing Dictionary], a python dictionary phrasing system that lets you write entire phrases such as "we don't really want to" in one stroke.
* [https://github.com/JorWat25/dictionaries/blob/main/british%20words.json JorWat's British Words], a dictionary of words and phrases found on the Wikipedia page, "Glossary of British terms not widely used in the United States".
== Dictionaries for non-English languages ==
{| class="wikitable"
!Language
!Author
|-
|[https://github.com/stanographer/steno-dictionaries/blob/master/stan-italiano.json Italian]
|Stanley Sakai
|-
|[https://github.com/stanographer/steno-dictionaries/blob/master/stanespanol.json Spanish]
|Stanley Sakai
|-
|[https://github.com/azizyemloul/plover-france-dict French]
|Aziz Yemloul
|-
|[https://github.com/winstond/hind_plover_dictionary Hindi हिन्दी]
|winston
|}
<blockquote>Note: The above foreign language dictionaries are designed to be used with the English steno keyboard layout, but it is possible to customize the steno layout. For dedicated foreign language steno layouts, see the [[Steno Layouts and Supported Languages|steno layouts & supported languages page]].</blockquote>
== Commercial stenography dictionaries ==
Plover can also work with exported dictionaries from commercial stenography applications such as Eclipse, ProCAT and Case CATalyst. See [[Dictionary Format]] page for more information.
[[Category:Stenography]]
d208cd6c80f9f5ecdefcd19a3a38364cd1169c5f
List of Available Steno Dictionaries
0
1570
2384
2024-08-17T03:52:42Z
Aerick
9
Aerick moved page [[List of Available Steno Dictionaries]] to [[List of available steno dictionaries]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[List of available steno dictionaries]]
b6cc6b29f83d2c2be5d1ba7d9009c88d8a75d9d8
The steno community
0
21
2385
299
2024-08-17T03:53:04Z
Aerick
9
Aerick moved page [[The Steno Community]] to [[The steno community]]: Sentence case
wikitext
text/x-wiki
There are many places where you can meet the stenography community. As Plover, we are focused on the Open Steno Project's various outlets, but there are also classic closed steno resources online.
== Open Steno Project ==
* '''[https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server] —''' Join the Discord server to chat with other steno-interested individuals. We welcome new people who may have very basic questions, looking for direction and help. We also welcome curious developers, stenography students, intermediate stenos, and professionals who are curious about Plover and its many uses compared with traditional software. Feel free also to drop by if you are looking to practice or find a new brief.
* '''[https://www.facebook.com/groups/486062194804842/ Ploversteno Facebook Group]'''
* '''[https://groups.google.com/forum/#!forum/ploversteno Ploversteno Google Group] —''' The Plover Google Group. Subscribe for updates and conversation.
* '''[https://github.com/openstenoproject/plover/discussions GitHub Discussions]'''
* '''[http://reddit.com/r/plover Unofficial Plover Subreddit: /r/Plover]'''
== General Stenography ==
* Facebook: [https://www.facebook.com/groups/ECRSgroup/ Encouraging Court Reporting Students]
* Twitter: There isn't much steno activity on Twitter, but maybe this list and this hashtag will help you get started.
** [https://twitter.com/morinted/lists/steno Steno List]
** [https://twitter.com/hashtag/stenolife?src=hash #stenolife]
4908f6a919ef2a5148553b406c405b74c7f5736e
The Steno Community
0
1571
2386
2024-08-17T03:53:04Z
Aerick
9
Aerick moved page [[The Steno Community]] to [[The steno community]]: Sentence case
wikitext
text/x-wiki
#REDIRECT [[The steno community]]
c3c7954ccc25ce6e185cbc8f0091845001dfeafa
Other pages
0
24
2387
248
2024-08-17T03:53:23Z
Aerick
9
Aerick moved page [[Other Pages]] to [[Other pages]]
wikitext
text/x-wiki
* [[Converting a Normal Keyboard (staggered NKRO QWERTY) to a Dedicated Plover Keyboard]]
* [[How to setup and use Plover with a Stentura 400SRT]]
* [[Main Dictionary Changes]]
* [[Measuring Your Real World Writing Speed]]
* [[Open Steno Project Timeline]]
* [[Stenotype Mnemonics for Beginners (English)]]
* [[Updating V3 Dictionaries]]
* [[Using Anki for Learning Stenography]]
0df14dbdee6567431336bc85f4ee6d6941499ecb
Other Pages
0
1572
2388
2024-08-17T03:53:23Z
Aerick
9
Aerick moved page [[Other Pages]] to [[Other pages]]
wikitext
text/x-wiki
#REDIRECT [[Other pages]]
d0d59fa17a8c0eea96117a0e8c61e92a0ab1aea3
StenEd theory
0
1573
2409
2024-08-24T07:47:25Z
Notmiffed
1660
Created page with "StenEd theory is a conflict-free theory created by the StenEd company. It is considered to be a longer, and more stroke intensive theory with a focus on writing words out phonetically to completion. However, it does have a few principles and briefs that allow for shorter and faster writing. StenEd is a widely taught professional theory. The Plover theory, and by extension the lapwing theory, have the StenEd theory at their base. They have been modified to be shorter and..."
wikitext
text/x-wiki
StenEd theory is a conflict-free theory created by the StenEd company. It is considered to be a longer, and more stroke intensive theory with a focus on writing words out phonetically to completion. However, it does have a few principles and briefs that allow for shorter and faster writing. StenEd is a widely taught professional theory.
The Plover theory, and by extension the lapwing theory, have the StenEd theory at their base. They have been modified to be shorter and/or more consistent in their rules.
63c368b13430351f0a19addb412e07e4b47fecff
Talk:StenEd theory
1
1574
2410
2024-08-24T07:49:23Z
Notmiffed
1660
Created page with "Just wrote out a base page for the stened theory, going to try and add in the relevant links to other wiki pages and sources"
wikitext
text/x-wiki
Just wrote out a base page for the stened theory, going to try and add in the relevant links to other wiki pages and sources
70aa00dd2802405dc19ca2244eef6ae0eba37dd4
Plover-uinput
0
1503
2411
2280
2024-08-29T14:20:54Z
Thai
1675
Update plugin installation now that plugin is in plugins manager. Add note about keyboard not being supported based on maintainer conversation in discord.
wikitext
text/x-wiki
== Background ==
Plover is not officially supported on Wayland. There are several workarounds to deal with this. The <code>[https://github.com/LilleAila/plover-uinput plover-uinput]</code> plugin should (in theory) work across all systems running Wayland. It has been confirmed to work on the following setups:
* Debian 12 GNOME 43
* Fedora 40 GNOME 46
Note that the plugin ''does not'' support using a machine type of keyboard.
== Installation and setup ==
=== Plugin installation ===
# Open the plugins manager.
# Find <code>plover-uinput</code> in the list.
# Press <code>Install/Update</code>
# Proceed with the installation.
# Press <code>Restart</code> after it is finished.
For more detailed steps for installation, see the [[Plugins#How to Install Plugins|plugins page]]
=== Post-installation setup ===
Add your user to the <code>input</code> group with the following command:
<pre>sudo usermod -aG input $USER</pre>
Create a file at <code>/etc/udev/rules.d/90-plover-uinput.rules</code> with the following content:
<pre>KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"</pre>
For full Unicode support (emoji, accented letters, etc), install the <code>ibus</code> or <code>fcitx5</code> package.
{{Info|text=Distributions running GNOME already have the <code>ibus</code> package installed.}}
'''After setup has been complete, restart your computer to ensure the changes take effect.'''
== Troubleshooting ==
=== Verify ibus is working ===
# On a regular keyboard, press <code>Ctrl+Shift+U</code>.
# You should see an underlined <u>u</u> appear.
# Type <code>1f990</code> and press enter.
# You should see 🦐 appear.
752cb11d3d7f4aee3accfe4b20fb841122bcf027
Software
0
63
2412
207
2024-08-29T14:26:22Z
Thai
1675
Add link to stenojig site and update history.
wikitext
text/x-wiki
{| class="wikitable"
|-
! Name
! Description
! Last update
! style="text-align: center;"| Windows
! style="text-align: center;"| macOS
! style="text-align: center;"| Linux
! style="text-align: center;"| Web
! style="text-align: center;"| Android
! style="text-align: center;"| iOS
|-
| [http://opensteno.org/ Plover]
| Desktop application that allows anyone to use stenography to write on their computer
| [https://github.com/openstenoproject/plover/releases Nov 2017]
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [http://play.typeracer.com/ Typeracer]
| Multiplayer online browser-based typing game
|
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| Plugins
| Give extra functionality to Plover. See separate table below.
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/quintopia/StenoTutor StenoTutor]
|
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [http://qwertysteno.com/Home/ QWERTYsteno]
|
|
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/SmackleFunky/StenoTray StenoTray]
|
| Mon Oct 31 2016 16:00:00 GMT-0700 (MST)
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://github.com/mkrnr/stenocomplete StenoComplete]
| Provides stroke suggestions based on the currently typed letters
| Mon Jul 31 2017 15:00:00 GMT-0700 (MST)
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://ploverdojo.appspot.com/ Plover Dojo]
| Qwerty-based training and drilling site for beginners
|
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
| style="text-align: center;"| ❌
|-
| [https://apps.ankiweb.net/ ANKI]
| Spaced repetition flashcard program. See list below.
| [https://en.m.wikipedia.org/wiki/Anki_(software) Aug 2017]
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
| style="text-align: center;"| ✅
|-
| Memrise
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| [https://joshuagrams.github.io/steno-jig/ StenoJig]
|
|[https://github.com/JoshuaGrams/steno-jig Oct 2023]
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Stenomatic 9000
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Steno Learner
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Fly
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
| Steno Typer
|
|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
| style="text-align: center;"|
|-
|
|http://stenoknight.com/wiki/Practice
|
|
|
|
|
|
|
|}
25f98e7cf9d554079b5e9f6fb30e8d95c9511014
Invoke plover from the command line
0
1575
2413
2024-08-29T14:39:34Z
Thai
1675
First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and captions into mediawiki format.
wikitext
text/x-wiki
Sometimes (for instance, to [https://github.com/openstenoproject/plover/wiki/Installing-Plugins#manually-installing-plugins manually install plugins]) you're required to run a command from the command-line.
The method is specific for each operating systems and shells. (Powershell, Windows command shell, bash, zsh, etc.)
In the example below, assume that the following command should be executed:
<pre>plover -s plover_plugins install plover-stenograph-usb</pre>
To run other commands, modify the arguments (<code>-s plover_plugins install plover-stenograph-usb</code>) accordingly.
See also [https://plover.readthedocs.io/en/latest/cli_reference.html Command Line Reference - Plover 4.0.0-dev10<sup>[external link]</sup>] for other commands that can be executed.
== Compatible Versions ==
Ensure you are running Plover 4.x.
== Windows ==
<ol style="list-style-type: decimal;">
<li><p>Find Plover's installation directory. It usually is in the format <code>C:\Program Files (x86)\Open Steno Project\Plover 4.0.0</code>.</p>
<p>You can find it by right-clicking a shortcut to Plover and selecting "Open File Location"</p>
Right-clicking shortcut to show Open File Location option: https://i.imgur.com/jsXQZA4.png
<li><p>You should see <code>plover.exe</code> and <code>plover_console.exe</code> in this folder. '''Holding shift''', right-click and select "Open PowerShell Window Here" or "Open Command Prompt Window Here."</p>
[[File:https://i.imgur.com/vJAC3tE.png|Open Powershell option highlighted]]</li>
<li><p>Type in the following command:</p>
<pre>.\plover_console.exe -s plover_plugins install plover-stenograph-usb</pre>
caption Command above in Powershell:
https://i.imgur.com/3AG4zfA.png
</li>
<li><p>Press Enter to run the command.</p>
Successful install screenshot with message highlighted:
https://i.imgur.com/GfawoX3.png
</li></ol>
== Mac ==
<ol style="list-style-type: decimal;">
<li>Open the Terminal app</li>
<li><p>Assuming Plover in installed in your Applications folder, enter this into Terminal and hit enter:</p>
<pre>/Applications/Plover.app/Contents/MacOS/Plover -s plover_plugins install plover-stenograph-usb</pre></li></ol>
== Linux (AppImage) ==
<ol style="list-style-type: decimal;">
<li><p>Execute the command in the command-line:</p>
<pre>plover.AppImage -s plover_plugins install plover-stenograph-usb</pre></li></ol>
fafc480a92b2ab89fdb9e330d5e39fcf59fbe349
2420
2413
2024-08-29T15:16:04Z
Thai
1675
Remove converted page and redirect to correct page
wikitext
text/x-wiki
#REDIRECT [[Invoke_Plover_from_the_command_line]]
af1a205450e628518e90eafdb44a6e20bb4af00c
Installation guide
0
1576
2414
2024-08-29T14:45:21Z
Thai
1675
First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and caption into mediawiki format.
wikitext
text/x-wiki
'''Table of Contents'''
* [[#install-plover-on-windows|Install Plover on Windows]]
* [[#install-plover-on-mac|Install Plover on Mac]]
* [[#install-plover-on-linux|Install Plover on Linux]]
* [[#troubleshooting|Troubleshooting]]
* [[#setting-up-my-machine|Setting up my machine]]
* [[#other-installation-methods|Other installation methods]]
* [[#for-developers-running-from-source|For developers: running from source]]
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.
-----
= Install Plover on Mac =
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5.
-----
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you're running Wayland and how to switch.
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a "file not found" error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.
= Other installation methods =
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on "Assets" and download the applicable file for your operating system.
Downloading releases:
https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.
= Troubleshooting =
If you get stuck, you can:
* Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can't find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
fedd56e73672d528a86fcd2721bccb86be58c7ee
2415
2414
2024-08-29T14:45:46Z
Thai
1675
Remove manual TOC
wikitext
text/x-wiki
= Install Plover on Windows =
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or the if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ==
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ===
Extract the entire folder to the location that you'd like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.
-----
= Install Plover on Mac =
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ==
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder, and [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac follow the guide to launch a program from an unidentified developer.]
# Open <code>System Preferences > Security & Privacy > Privacy > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
Plover is set up! You can run Plover like you would any other application.
<blockquote>'''Note''': Other "keyboard helper"-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote>
=== If you had previously uninstalled Plover or upgraded your system ===
Repeat step 4, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, readd <code>Plover.app</code> by repeating step 5.
-----
= Install Plover on Linux =
Plover is provided as an AppImage. This is the only officially supported method to using Plover on Linux.
Please note that '''Plover is not officially supported on systems running Wayland at this moment'''. Many distros use Wayland by default and you will need to switch back to use Plover. Follow a tutorial like [https://helpdesk.psionline.com/hc/en-gb/articles/13470827149332-How-to-perform-the-switch-from-the-Wayland-display-server-to-Xorg-X11-on-Linux-Ubuntu-22-04-LTS this one] to determine if you're running Wayland and how to switch.
== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-x86_64.AppImage Download the Plover AppImage here] ==
To use it:
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable
== Allow Access to Serial Ports ==
All hobbyist steno keyboards by default use serial protocols to communicate with Plover. You will have to give your user the right privileges in order for these keyboards to work with Plover. You can do this by adding your user to the relevant group.
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a "file not found" error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
Once you know the correct group, add your user to it by running the following command:
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
'''Once you have added yourself to the right group, restart your computer.'''
== Error relating to xcb ==
You may run into the following error when trying to run Plover:
<blockquote>Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.
</blockquote>
Ensure that the following packages are installed:
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
= Setting up my machine =
Initially, Plover is set up to use your computer keyboard as a steno machine. If you have a steno machine, you'll need to configure Plover to look for your machine. Please check the [https://github.com/openstenoproject/plover/wiki/Supported-Hardware Supported Hardware page] to find instructions specific to your machine.
= Other installation methods =
== Other releases ==
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on "Assets" and download the applicable file for your operating system.
Downloading releases:
https://github.com/openstenoproject/plover/assets/52895314/7e886397-e35d-41f9-b23b-2e7d22a658e9
== Homebrew Cask ==
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.
== Arch AUR package ==
Two AUR packages are provided:
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].
== Gentoo git ebuild ==
Currently, only a git ebuild for the <code>master</code> branch is provided.
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)
== Void Linux package ==
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
Note: the plugins manager has not been packaged yet.
= Troubleshooting =
If you get stuck, you can:
* Check the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide.]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can't find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [https://github.com/openstenoproject/plover/wiki/Links-to-the-Steno-Community steno community], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.
= For developers: running from source =
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
defbbd4c4791c3ccc396ceae1bd2603063c2015a
2419
2415
2024-08-29T15:14:01Z
Thai
1675
Remove converted page and redirect to correct page
wikitext
text/x-wiki
#REDIRECT [[Installation_Guide]]
12a92be0c156770a38aab1f078e2794106220c9f
Beginner's guide
0
1577
2416
2024-08-29T14:53:11Z
Thai
1675
First pass at creating page based on markdown to mediawiki wtih pandoc. Still needs images and captions into mediawiki format.
wikitext
text/x-wiki
This guide explains how to '''get started with Plover'''. Plover is free stenography software. All the learning resources listed below are free-of-charge.
== Overview ==
The main steps are:
# [[#download-and-install-plover|Download and install the Plover application.]]
# [[#connect-a-compatible-keyboard-or-stenography-machine|Connect a compatible keyboard or stenography (steno) machine.]]
# [[#confirm-its-working|Confirm it's working.]]
# [[#practice-and-learn|Practice and learn stenography using Plover.]]
== Download and Install Plover ==
Plover works on '''Windows, Mac, and Linux'''.
* [https://github.com/openstenoproject/plover/wiki/Installation-Guide '''Download and install Plover with the Installation Guide 🚀''']
* If you get stuck, see the [https://github.com/openstenoproject/plover/wiki/Troubleshooting:-Common-Issues troubleshooting guide].
== Connect a compatible keyboard or stenography machine ==
Steno involves pressing down groups of keys (called "strokes" or "chords) all at once. Standard QWERTY keyboards usually only recognize a few keys pressed at once. While some steno strokes may contain as many as as 10 keys, it is still possible to learn the basics of steno with a regular keyboard. While a dedicated steno keyboard will make it significantly easier to reach 120+ WPM, we would not recommend buying one until you are sure you want to dedicate the time to learning steno.
Feel free to read this entire section, but if you are already familiar with the hardware you have, you can skip to the relevant section: * [[#use-a-standard-qwerty-keyboard|Use a standard QWERTY keyboard]] * [[#use-an-n-key-rollover-nkro-qwerty-keyboard|Use an N-key rollover (NKRO) QWERTY keyboard]] * [[#adapt-a-keyboard-for-steno-use|Adapt a keyboard for steno use]] * [[#use-a-machine-designed-for-use-with-plover|Use a machine designed for use with Plover]] * [[#use-a-professional-stenography-machine|Use a professional stenography machine]]
=== Use a standard QWERTY keyboard ===
If you are on a laptop or are using a generic keyboard, chances are it does not have N-key rollover (NKRO). This refers to keyboards that are capable of recognizing any number of keys pressed simultaneously. Most keyboards can only recognize up to 6 simultaneous key presses (and some combinations may only yield 2 simultaneous key presses). To work around the lack of NKRO, you have two options: arpeggiating, and rolling your strokes.
==== Arpeggiate ====
With the arpeggiate option enabled, you can write a stroke by pressing smaller groups of keys (or even individually) and then the spacebar once you've finished. Plover will not process a chord until after you have pressed the spacebar. This way, you do not necessarily have to press multiple keys at once, thereby working around the lack of NKRO.
Arpeggiate gif:
https://media.discordapp.net/attachments/1034561065654161478/1200852241993715863/keyboard-arpeggiate.gif
To enable arpeggiate, open Plover's main window and press <code>Configure</code>. Under "Machine" enable <code>Arpeggiate</code> and click <code>Apply</code> and <code>OK</code> when you are done.
arpeggiate option:
https://github.com/openstenoproject/plover/assets/52895314/5467e672-7306-43d8-83fb-6f771a5802ef
==== Rolling your strokes ====
By default, Plover does not process steno strokes until every single key has been released. You can use this feature to your advantage if you do not have an NKRO keyboard. Instead of pressing the keys in a stroke simultaneously, press only a few. Slowly add one more key in the stroke while releasing another. As long as you keep at least one key pressed down, Plover will not receive your steno stroke, and you can still add in more keys to the stroke.
https://cdn.discordapp.com/attachments/136953809409802240/1173317394022801488/keyboard-roll.gif
Regardless of if you roll or arpeggiate your strokes, make sure you [[#confirm-its-working|confirm it's working]].
=== Use an N-key rollover (NKRO) QWERTY keyboard ===
An N-key rollover (NKRO) keyboard is specially designed to allow pressing many keys at once. Many gaming/mechanical keyboards have NKRO. With an NKRO keyboard and Plover, you can press down every single key in a stroke all at once without needing to use one of the workarounds mentioned above. By default, Plover is set to use your keyboard as a steno machine after you install the app.
Be sure to try the example later in this page to [[#confirm-its-working|confirm it's working]].
==== Which NKRO keyboard should I get? ====
Full NKRO over USB is possible, and many keyboards do it well. Generally, searching for "NKRO" or "anti-ghosting" keyboards will result in compatible keyboards. Make sure to check reviews before purchasing a keyboard as some have been known to falsely advertise NKRO (although, this is a rare occurrence).
* See the [[Supported Hardware]] page for a [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#known-supported-keyboards list of supported keyboards].
* See also: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#which-type-of-key-switch-should-i-choose Which type of key switch should I choose?]
=== Adapt a keyboard for steno use ===
Most keyboards have the keys in staggered rows, which can make it difficult to press two keys in a column with a single finger. To adapt a keyboard for steno, you can use:
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keytoppers Keytoppers]
* [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#keycaps Keycaps]
You can also use [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#nkro-keyboards-with-an-ortholinear-layout a keyboard with an ortholinear layout].
=== Use a machine designed for use with Plover ===
Various steno enthusiasts are making and selling machines designed for use with Plover:
* [https://nolltronics.com/product/ecosteno/ Ecosteno*]
* [https://nolltronics.com/product/multisteno/ Multisteno*]
* [https://stenokeyboards.com/products/polyglot-keyboard Polyglot*]
* [https://softhruf.love/products/soft-hruf-erl Splitography*]
* [https://www.stenography.store/ Starboard*]
* [https://stenomod.blogspot.com/2018/11/tinymod2.html TinyMod*]
* [https://stenokeyboards.com/ The Uni*]
(* = External link)
More information: [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#dedicated-machines-designed-for-use-with-plover Dedicated machines designed for use with Plover].
=== Use a professional stenography machine ===
Some professional stenography machines are compatible with Plover. You can find used steno machines on eBay at reasonable prices.
See the [[Supported Hardware]] page for a list of supported professional stenography machines.
== Confirm it's working ==
Initially, Plover is set up to use your computer's qwerty keyboard by default. If you have a professional stenography machine, or a hobbyist steno keyboard, you'll need to configure Plover to look for your machine (usually GeminiPR or TX Bolt). See each respective vendor's guides on how to set up your keyboard with Plover. See also [https://www.youtube.com/watch?v=2tp_hSVCKN8 this video tutorial] for how to set up a hobbyist steno keyboard that uses Gemini PR.
=== Keyboard ===
By default, Plover will use your keyboard as its input device.
# Run Plover.
# Click the Output: '''Enable''' radio button.
=== Write "Hello World" ===
To confirm Plover is working correctly, you may try to write "Hello, world." into a text editor with Plover. Open Plover's main window and, and select Plover's output to be enabled. Open a text editor and write the steno key strokes in the table below, one row at a time.
<blockquote>NOTE: Notepad in Windows 11 is quite buggy with fast input and does not work well with Plover. Instead of Notepad, try a different program such as Microsoft Word or Google Docs in a browser.
</blockquote>
If you are using a QWERTY keyboard, follow the QWERTY keys on the right column. Otherwise, follow the middle column. Unless you are arpeggiating or rolling your strokes, make sure to press every single key all at once. Remember to release every key after each row.
{|
!width="6%"| Output
!width="6%"| Steno Key Stroke
!width="6%"| QWERTY Keys
|-
| hell
| <code>HEL</code>
| <code>r</code> (left index index) <br> <code>n</code> (right thumb) <br> <code>o</code> (right ring finger )
|-
| o
| <code>HRO</code>
| <code>rf</code> (left index finger pressing in between) <br> <code>v</code> (left thumb)
|-
| ,
| <code>-RBGS</code>
| <code>j</code> (right index finger) <br> <code>k</code> (right middle finger) <br> <code>l</code> (right ring finger) <br> <code>;</code> (right pinkie finger)
|-
| world
| <code>WORLD</code>
| <code>d</code> (left middle finger) <br> <code>v</code> (left thumb) <br> <code>j</code> (right index finger) <br> <code>o</code> (right ring finger) <br> <code>[</code> (right pinkie finger)
|-
| .
| <code>-FPLT</code>
| <code>u</code> (right index finger) <br> <code>i</code> (right middle finger) <br> <code>o</code> (right ring finger) <br> <code>p</code> (right pinkie finger)
|}
If you see different output, open the paper tape (in Plover's main window under <code>Tools → Paper Tape</code>) and try the steno strokes again. Verify that the right keys are being registered. If the steno keys shown in the paper tape are not the same as those in the middle column above, first make sure you are pressing the right physical keys. If you are still not getting the right output, have a look at the following: * If you are using a steno machine and are not getting the right keys/output, ensure you are using the right protocol for your [https://github.com/openstenoproject/plover/wiki/Beginner's-Guide:-Get-Started-with-Plover#stenography-machine stenography machine] * If you are using a QWERTY keyboard and are not getting the right keys/output, your keyboard may not have NKRO
==== Practice sentences ====
You can practice sentences that (mostly) only need two keys at once, on the [https://joshuagrams.github.io/steno-jig/two-key StenoJig] website.
==== Use the correct body posture and finger placement ====
Your fingers should be curled slightly, so you press the keys using the tips of your fingers.
Steno keys on QWERTY keyboard:
https://media.discordapp.net/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png
On a QWERTY keyboard, you move your hands half an inch up so that your left thumb is resting on the cracks between the <code>C</code> and <code>V</code> keys and your right thumb is resting between the <code>N</code> and <code>M</code> keys. The rest should fall into place.
{|
!align="center"| QWERTY layout
!align="center"| Maps to steno layout
|-
|align="center"| <code>QWER TY UIOP[</code>
|align="center"| <code>STPH ** FPLTD</code>
|-
|align="center"| <code>ASDF GH JKL;</code>
|align="center"| <code>SKWR ** RBGSZ</code>
|-
|align="center"| <code>CV NM</code>
|align="center"| <code>AO EU</code>
|}
See also:
* [https://www.youtube.com/watch?v=YfHNPW6EnHo Basic Hand Posture on the Steno Machine]
* [https://www.youtube.com/watch?v=s_zyxgQvNEU Basic Body Position for Steno Students and Pros]
=== Stenography machine ===
Plover supports several protocols that are in use by various professional stenography machines. To configure Plover to the protocol your machine uses:
# Run Plover and click the '''Enable''' radio button.
# Click the '''Configure''' button on the Plover Dialog screen. The Plover configuration screen appears.
# On the '''Machine''' tab, select the protocol your machine uses.
# Click '''Save'''.
See [https://github.com/openstenoproject/plover/wiki/Supported-Hardware#supported-protocols Supported protocols] for more information.
== Practice and learn ==
It's time to start learning stenography theory for free, practicing writing using stenography, and learning how to make the most of Plover's built-in tools. See the [https://github.com/openstenoproject/plover/wiki/Learning-Stenography Learning Resources].
=== Which steno theory should you learn? ===
There are many steno theories that encompass the rules you use to convert words to steno strokes.
Almost all English language steno theories are derived from the original Stenotype theory devised by Ward Ireland. They all share the same keyboard design and basic method of representing the sounds. Theories mostly differ by how much rote memorization is required. Typically, memorization heavy theories are faster.
The default theory that comes with the Plover app (called Plover theory) is Mirabai Knight's own personal theory that she uses for stenocaptioning—it is very fast, as a result. However, there are a lot of odd inconsistencies that may not make it a great choice for beginners. Using it requires a lot of personal changes and additions very early on in the learning process.
One alternative to Plover is Lapwing theory. It was created by a community member dissatisfied with the unnecessarily steep learning curve associated with Plover theory. It has a comprehensive wiki that covers a wide range of content along with exercises to practise concepts. Many regard it as easier to learn than Plover theory due to having more consistent rules. For details on how to set up and learn Lapwing theory, see [https://lapwing.aerick.ca Lapwing for Beginners].
'''We recommend learning either Plover theory or Lapwing theory.'''
Other theories also exist, but either cost money, or are not supported by Plover. Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization into the theory you've chosen to squeeze out more speed. Furthermore, we do not recommend spending money on a theory until you're certain you like stenography and see a clear reason to switch.
346e0d1106e4040434a755f3f30232bb9357056b
2418
2416
2024-08-29T15:12:52Z
Thai
1675
Remove converted page and redirect to correct page
wikitext
text/x-wiki
#REDIRECT [[Beginner's_Guide]]
e565f7cbdab97b85f16f34ad260bfacfaa8a763f
Brief ideas
0
1578
2417
2024-08-29T15:06:00Z
Thai
1675
First pass at creating page based on markdown to mediawiki wtih pandoc. Most images 404.
wikitext
text/x-wiki
[https://www.openstenoproject.org/learn-plover/ Learn Plover!] is a great introduction to Plover's theory and has everything you need to get started writing in steno. However, there are some patterns across Plover's dictionary which are not documented there. This document aims to show some of the hidden patterns. It also suggests some others that you can consider using in your personal dictionary.
<img src="http://qwertysteno.com/Images/steno-keyboard1.gif">
== In the Main Dictionary ==
You can start using these patterns today!
=== <code>SPW-</code> for int- and ent- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM3MzU0MjY0NzM5ODQvMzE1OTMxNDg1MzU2MTYzMDg0L1NQVy0ucG5nIn0.PmMTgOlKRGBqsKjRfj79wRGZ2FU">
This originated in the first steno theory, published by Ward Stone Ireland in the early 20th century. Today, it is also a part of Magnum steno. There are some entries in the default dictionary that use <code>SPW-</code>, although it's not documented in [https://www.openstenoproject.org/learn-plover/ Learn Plover]. Examples:
* <code>SPWEPBLGT</code> for "intelligent".
* <code>SPWRABGT</code> for "interact".
* <code>SPWER</code> for "enter".
* <code>SPWAOEURL</code> for "entirely".
=== <code>-FRP</code> for -mp ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMyODQwMDc4NjA2MzM3Ly1GUlAucG5nIn0.7yN5cWWjUUj214MTDMRoactcKGY">
Usually, Plover theory (and Mirabai) uses <code>*PL</code> for the -mp sound in the end of a syllable. It can be difficult to add sounds after it. Instead, you can use <code>-FRP</code> to avoid conflicts and add <code>-B</code>, <code>-L</code> after -mp.
Common uses of this are to add -mpl or -mbl to the end of a stroke:
* <code>AFRP</code> for "amp" and <code>AFRPL</code> for "ample". This reduces conflicts with "apple" and "am".
* <code>EUFRP</code> for "imp"
=== <code>-FP</code> and <code>-AOUFP</code> for -ture ===
<img src="https://images.discordapp.net/.eJwNxEsOhCAMANC7sB_K11APMGuvQJCgiVpC68p495m3eI-6x6FmtYl0ngHWnQuNVbPQyK3qRtSOmvvOutAJWSSX7ayXMFg_YfTJYDCYjHPBgLcR_T-LwaYUcXLw-S66X029P3evIJM.quQ3BjFFrW-Wn79vtoHMSe2U594">
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8zMTU5MzQwNjAxNTUzNzE1MjEvMzE1OTM0NTY0MTE3OTA1NDEwL0FPLVVGUC5wbmcifQ.eOkuTdrVDh49idcRD_ztb5ZBN3c">
<code>-FP</code> is used for the -ch sound in words like "catch". The default dictionary also includes many briefs where it is used for the -ture suffix. for example: "nature", which can be stroked as <code>TPHAEUFP</code> (naich).
A note: For some of these words, a tense u sound (<code>AOUFP</code>) is used for -ture instead of just the <code>-FP</code>:
* <code>TPHAEUFP</code> for "nature"
* <code>KRAOEFP</code> for "creature"
* <code>KAOUFP</code> for "culture"
* <code>TPAOEFP</code> for "feature"
* <code>P*EUFP</code> for "picture"
* <code>STRAOUFP</code> for "structure"
* <code>SKAOUFP</code> for "sculpture"
* <code>FRA*FP</code> or <code>FRAOUFP</code> for "fracture"
== Non-Plover Theory Ideas ==
You will need to define new strokes in your dictionary with these ideas.
=== <code>SKP-</code> for ex- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzNjAwMzUwNjAxMjM3L1NLUC0ucG5nIn0.XnB7R4DxhVOeSpgr6mNIje2YCdE">
The default dictionary uses a combination of <code>KP-</code> and <code>S-</code> to make the leading ex- sound. For example: <code>KPEUT</code> for "exit" for <code>SPHRAEUPB</code> for "explain".
The rules for which one to use [https://www.dropbox.com/s/fa7fch2eocubrde/Philadelphia%20Clinic.pdf?dl=0 depend on the consonant following the ex-]. If you don't like this, you can use <code>SKP-</code> for a leading ex-:
* <code>SKPRAGT</code> for "extract".
* <code>SKPERPBL</code> for "external".
* <code>SKPHRAEUPB</code> for "explain".
Note: The leading <code>SKP-</code> is also used for some phrase briefs starting with "and" in the default dictionary. For example:
* <code>SKPEBG</code> for "and he can"
* <code>SKPALS</code> for "and also".
If this is a problem for you, you can also try <code>SK*</code> instead of <code>SKP-</code>.
=== <code>KPW-</code> for im- and em- ===
<img src="https://images.discordapp.net/eyJ1cmwiOiJodHRwczovL2Rpc2NvcmQuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hdHRhY2htZW50cy8xMzY5NTM4MDk0MDk4MDIyNDAvMzE1OTMzODA5ODQzMzcyMDMzL0tQVy0ucG5nIn0.V7JbEqDmCU4LLvjgKmaQG351A7s">
Examples:
* <code>KPWRES</code> for "impress".
=== <code>-FR</code> for -m ===
<img src="https://images.discordapp.net/.eJwtyEEOhCAMAMC_cF_aikj0AfsAf0CAoIlaQuvJ7N_34hznMXc_zGI21SYLQN4lcc9WlHusxVbmepTYdrGJT4iqMW1nuVTAkZ_diBOS9y6QH-gtmhAdIoZhDvD5rrZd1fz-dDIgcg.eRrlLVQMtQVEDI0MRpiLtfXMmMc">
Above it's shown that <code>-FRP</code> can be used in the default dictionary for -mp. This stroke extends that idea:
If <code>-PL</code> causes an issue (for example: "camel"), use <code>-FR</code>.
For example:
* <code>KAFRL</code> for "camel"
f303279da7e21da15f269070713f06bc62be5c86
2421
2417
2024-08-29T15:19:26Z
Thai
1675
Remove converted page and redirect to correct page
wikitext
text/x-wiki
#REDIRECT [[Brief_Ideas]]
60750c8ab1ee449be1e2b7e09f83e1d53b010a49
Talk:Brief Ideas
1
1579
2422
2024-08-29T15:22:36Z
Thai
1675
Add discussion of title caps.
wikitext
text/x-wiki
I've seen some page moves to make articles first letter capped only, e.g. My page vs My Page, but this page seems to go against this. In the meantime since I can't change the sidebar, I just created a redirect from [[Brief ideas]], but if we want this one to match, we'll probably want to do a move and reverse the redirect in the future. [[User:Thai|Thai]] ([[User talk:Thai|talk]])
cced67ecd06d9b8bd34e97936bbec4f3cacda032
Open Steno Project timeline
0
13
2423
2375
2024-08-29T22:41:56Z
Paulfioravanti
1672
Fixed link addresses.
wikitext
text/x-wiki
The [https://www.opensteno.org/ Open Steno Project] has a lot of different goals and projects, and sometimes it's hard to tell what happened when. This page aims to provide a summary of events with dates for anyone curious.
=== September 2005 to March 2007 (18 months) ===
<blockquote>Backstory</blockquote>[https://stenoknight.com/ Mirabai Knight] attends the New York Career Institute to learn stenography at 225 words per minute.
=== 2007 ===
<blockquote>Backstory</blockquote>Mirabai creates a dictionary builder, named Bozzy, with help from her brother William. It's a program that reads from a word list and creates a dictionary using raw steno input. It requires the use of CAT software set to send keys to the computer instead of a transcript.
=== 2008 ===
<blockquote>Backstory</blockquote>Mirabai decides she wants to create an open source steno software, unsatisfied with the current proprietary, bloated, and expensive solutions.
Mirabai starts to learn python and breaks down technical challenges that will need to be addressed with a steno program that is actually a keyboard emulator. She notes that the timer feature from other steno software is awful and that Plover should process each stroke immediately. The idea of what Plover should be goes through much process. Does it have a document editor? A UI at all? Is it a program? Is it a keyboard?
=== October 2009 ===
<blockquote>Plover</blockquote>Mirabai meets [https://www.crunchbase.com/person/joshua-lifton#/entity Joshua Lifton], via an ad Mirabai posted in her shared-workspace building elevator looking for a Python tutor. Joshua becomes the lead Plover developer, funded by Mirabai and donations to the project.
Plover is developed on Ubuntu and is Linux-only.
=== June 2010 ===
<blockquote>Education</blockquote>Mirabai begins writing her [http://plover.stenoknight.com/2010/06/steno-101-lesson-zero.html Steno 101 series.]
=== October 2010 ===
<blockquote>Plover</blockquote>First public release of Plover (version 2.0) Plover is Linux-only and supports only the Gemini PR machine protocol, as well as regular NKRO keyboard input.
=== December 2010 ===
<blockquote>Plover</blockquote>Joshua moves to Oregon to work at Crowd Supply, and the Plover Project is put on hiatus with minimal development. Plover 2.2.0 is released.
=== April 2011 ===
<blockquote>Education</blockquote>Mirabai posts musings and thoughts about gamifying steno education. She calls it [http://plover.stenoknight.com/2011/04/hover-plover.html Hover Plover] (later renamed to Steno Arcade).
=== October 2011 ===
<blockquote>Plover</blockquote>Hesky Fisher starts working on Plover.
=== May 2012 ===
<blockquote>Plover</blockquote>Hesky takes over development of Plover, beginning by porting to Windows and Mac, as well as adding many more steno machine protocols, including Stentura, Tréal, and TX Bolt.
=== April 2013 ===
<blockquote>Third-party</blockquote>[https://github.com/brentn Brent Nesbitt] releases StenoTray, a Java app that runs alongside Plover to watch your strokes and give outlines for what you might be trying to write.
=== July 2013 ===
<blockquote>Plover</blockquote>Hesky releases Plover 2.3.0 for Linux, Windows, and Mac.
Plover grows, with support for suffix folding, multiple dictionaries, stroke display, adding translations, orthography rules, and more.
=== August 2013 ===
<blockquote>Education</blockquote>Mike Neale introduces steno-training website [http://qwertysteno.com/ QwertySteno].<blockquote>Hardware</blockquote>Josh Lifton announces plans to build an open source steno keyboard, the [http://stenosaurus.blogspot.ca/ Stenosaurus].
=== September 2013 ===
<blockquote>Education</blockquote>Jay Liu introduces steno-training website [http://ploverdojo.appspot.com/ Plover Dojo].<blockquote>Education</blockquote>Zach Brown, a technical writer, publishes the first half of [https://www.openstenoproject.org/learn-plover/ Learn Plover!]. Learn Plover! is a free online textbook that Mirabai commissioned Zach in exchange for steno lessons.
=== January 2014 ===
<blockquote>Plover</blockquote>Now at version 2.5.8, Hesky slows development to focus on other projects.
=== April 2014 ===
<blockquote>Hardware</blockquote>Emanuele Caruso announces the Stenoboard, an open source stenographic split 3D-printed keyboard.
<!-- peace, brother [http://www.stenoboard.com/ Stenoboard] Friday, 26 April, 2024 ,-->
=== Summer 2015 ===
<blockquote>Plover</blockquote>Mike Neale becomes an active contributor and adds many new features to Plover, including a dictionary editor and retro commands. No release is made.
=== August 2015 ===
<blockquote>Plover</blockquote>Hesky steps down from maintaining Plover. Mirabai starts looking for a new maintainer.
=== September 2015 ===
<blockquote>Plover</blockquote>Ted Morin begins work on Plover. Soon after beginning work, Benoit Pierre joins in and begins intense refactoring and improvement of the code base.
=== December 2015 ===
<blockquote>Hardware</blockquote>Scott Urueta announces and starts selling the [https://softhruf.love/ SOFT/HRUF], an open source 3D-printed steno machine with light linear mechanical switches.
=== March 2016 ===
<blockquote>Plover</blockquote>"Weekly" releases (pre-releases) begin being published on GitHub for users wanting to try the new features. Given the two years passed since a release, there were bugs present in the code base that needed to be addressed.<blockquote>Education</blockquote>[http://plover.stenoknight.com/2016/03/steno-arcade-campaign-is-live.html Steno Arcade] crowd supply campaign goes live along with a demo. Project succeeds with 116% funding.
=== April 2016 ===
<blockquote>Plover</blockquote>Plover version 3.0.0 is released, featuring new training tools, a UI rearrangement, a dictionary editor, a new icon, output modes, and many under-the-hood improvements to improve cross-platform behavior.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== October 2016 ===
<blockquote>Education</blockquote>Josh Grams introduces JavaScript-based drilling website [https://joshuagrams.github.io/steno-jig/ Steno Jig].
=== November 2016 ===
<blockquote>Plover</blockquote>Plover version 3.1.0 is released.
Behind the scenes, Benoit Pierre performs major refactoring work to allow Plover to support other layouts and chording systems, user plugins, different GUIs (including a QT version), and Python 3. The project license is updated from GPLv2 to GPLv2+.
=== September 2016 ===
<blockquote>Hardware</blockquote>Charley Shattuck starts to sell his customizable steno machine, the [https://stenomod.blogspot.ca/ Stenomod]. The Stenomod comes on a deck of wood for desk and lap use, but can be detached and used in split configuration.
=== December 2016 ===
<blockquote>Soft-to-Hard-ware</blockquote>cemraJC, pre-releases version 0.1 of the [https://cemrajc.github.io/stenotoppers/ StenoToppers!] A preliminary project structure and a mockup of keyboard with CAD drawings for the keycaps was completed.
'''The thumb keycap was also completed.'''
=== The future - 2017 and onwards ===
Don't worry, Plover development continues. You can see the [https://github.com/openstenoproject/plover/issues issues and feature requests on GitHub], join in the developer discussions by joining the [https://discordapp.com/channels/136953735426473984/144999734254370816 Plover #devtalk forum], and/or watch out for news published on the blog.
Coming soon - Support for other layouts and chording systems, user plugins, and different GUIs.
=== July 2017 ===
==== 07 July 2017 T05:09:34Z ====
<blockquote>Soft-to-Hard-ware</blockquote>[https://cemrajc.github.io/stenotoppers/ StenoToppers!] version 1.0 has been released! cemraJC, verifies test prints fit the CherryMX keycaps snugly, once they are properly fitted. See the fitting guide for more information.
=== September 2018 ===
<blockquote>Textbook</blockquote>Ted Morin a self-taught hobbyist stenographer, begins work on [https://www.artofchording.com/ Art of Chording!] The entire book ''was written'' and is being written, exclusively using stenography.
=== January 2019 ===
<blockquote>Hardware</blockquote>Jane from [https://www.gboards.ca/ gBoards] begins to sell the Georgi, a split mechanical keyboard designed for use with Plover.
=== February 2021 ===
<blockquote>Hardware</blockquote>Peter from [https://stenokeyboards.com/ StenoKeyboards] starts to sell The Uni, a unibody split ortholinear mechanical keyboard for stenography.
=== April 2021 ===
<blockquote>Hardware</blockquote>Nathan and Lenno from [https://nolltronics.com/ Nolltronics] releases the EcoSteno and starts to sell them.
=== July 2021 ===
<blockquote>Plover</blockquote>Plover version 4.0.0 is released with major design and software upgrades from 3.0.0. Most Plover users were already using the weekly/continous pre-release versions of 4.0.0. But July 2021 marks the time when it was officially released as a stable version.
=== January 2022 ===
==== 22<sup>nd</sup> January 2022 ====
===== Open Steno / Plover Meetup =====
<blockquote>Events</blockquote>This is a first-of-its-kind virtual meetup between the '''Open Steno community''' and a group of <small>professional stenographic court reporters</small> and realtime captioners. The goal of this event was to raise awareness of Open Steno initiatives among the professional stenographer community, and create networking opportunities between them and amateur stenographers in the Open Steno community. <!--This virtual event was simultaneously streamed on StenoKeyboards channel and LittleChaSiu 小叉燒 channel. -->
=== June 2022 ===
==== 7<sup>th</sup> June 2022 ====
<blockquote>Gaming</blockquote>[https://www.paulfioravanti.com Paul Fioravanti] shares [https://www.youtube.com/watch?v=fxxDAYuciD8 world's first steno playthrough of Doom typist] with his demon slaying steno machine, the Georgi.
=== August 2023 ===
==== 14 August 2023 ====
<blockquote>Education</blockquote>Di of didoesdigital completely rewrites the website's [https://didoesdigital.com/typey-type/ Stenography Lesson Generator]
=== April 2024 ===
==== 15 April 2024 ====
<blockquote>plover.wiki</blockquote>plover.wiki recovers from a co-ordinated spam attack, of bots instructed to register without e-mail verification, periodically creating pages on the User: Namespace hoping to leech organic traffic to external websites. Through the swift action of the sysops & willing administrators of its time, the attack did not leave a lasting, damaging effect on the server.
[[Category:Plover]]
05bd6443991e1b66339a53ab8ed704e7bf62e6d5
Supported hardware
0
10
2424
2352
2024-09-02T13:20:39Z
Fieldchicken
1656
changed starboard image link (was not working before)
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" />
An ergonomic steno keyboard with choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
Wireless charging, tenting and tripod mount options available as extras.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
6e1e3376155dc66315b8ecf16504f32e6c818e98
2425
2424
2024-09-02T13:21:26Z
Fieldchicken
1656
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" />
An ergonomic steno keyboard with hot-swappable choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
Wireless charging, tenting and tripod mount options available as extras.
'''Stock status''' (August 2024): Ships within 3 weeks
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
95d3c127c2333c16ba5cc0f037e985da5588e4f1
2432
2425
2024-09-15T08:34:17Z
Tharelia
1661
Update Jarne avialability for September
wikitext
text/x-wiki
Having a dedicated steno device is helpful for ergonomics and speed. This page lists the types of steno hardware ([[Steno hardware terminology|writers/machines/keyboards]]) that Plover supports.
For most users, we recommend one of the [[Supported hardware#Commercially available hobbyist writers|commercially available hobbyist writers]]. All of the listed writers are perfectly adequate! Choose one that's in stock and within your budget. Plover also supports:
* [[Supported hardware#Stenotype machines|Professional stenotype machines]]
* [[Supported hardware#Standard keyboards|Standard keyboards]]
* [[Supported hardware#Video game controllers|Video game controllers]] (requires a plugin)
* [[Supported hardware#DIY steno writers|DIY steno writers]]
== Commercially available hobbyist writers ==
''See also: [[choosing a hobbyist steno writer]].''
<!-- Group by brand (alphabetical), out of stock at bottom
-->{| class="wikitable sortable"
|-
! Product Name
! Manufacturer
! About
!Javelin?(embedded steno)
! Price (USD)
|-
| [https://stenomod.blogspot.com TinyMod]
| Charley Shattuck
| <img alt="TinyMod" src="https://2.bp.blogspot.com/-EtmothiLtUo/XL4RrK7jw5I/AAAAAAAACTU/8TibacoLPuYBu6-nmPhaEQnVZsweVEp5gCLcBGAs/s400/20190422_120223.png" width="300px" align="right" />
Open source hardware. A smaller, nonsplit version of the Stenomod that omits the number bar in order to reduce costs and size. The center vowel key is used as a number bar replacement. See [http://plover.stenoknight.com/2019/12/tinymod-review.html Mirabai’s review].<br><br>'''Stock status''' (January 2024): In stock
|No
| $140 (stock)<br>$180 (silent)
|-
| [https://nolltronics.com/product/ecosteno/ Ecosteno]<br>[https://nollelectronics.com/products/ecosteno International site]
| rowspan="2" | [https://nolltronics.com/ Nolltronics]
| <img alt="Nolltronics Ecosteno" src="https://nolltronics.com/wp-content/uploads/2021/04/Ecosteno-Main-e1664569753995-1024x666.png" width="300px" align="right" />
A machine whose mission is to be the best value option on the market. It has low-profile Kailh Choc switches with 20g actuation force. It features USB-C connectivity and an aluminum backplate with a solid tripod mount.<br><br>'''Stock status''' (June 2024): In stock
|No
| $95
|-
| [https://nolltronics.com/product/multisteno/ Multisteno]<br>[https://nollelectronics.com/products/multisteno-case-and-cables-included International site]
| <img alt="Nolltronics Multisteno" src="https://nolltronics.com/wp-content/uploads/2022/05/DSC03181-Multi-Main-1200x1200.jpg" width="300px" align="right" />
The premium version of the Ecosteno, the Multisteno features 42 Kailh Choc (Pro Pink) switches with 20g actuation force, USB-C connectivity, an aluminum backplate, and a solid tripod mount. <br><br>'''Stock status''' (June 2024): In stock
|No
| $170
|-
|[https://stenokeyboards.com/products/asterisk-keyboard Asterisk]
| rowspan="3" |[https://www.stenokeyboards.com StenoKeyboards]
|<img alt="Asterisk" src="https://stenokeyboards.com/cdn/shop/files/holdingfrontwoodedit3.jpg?v=1712974633&width=713" width="300px" align="right" />
A split, unibody steno keyboard with touch capacitive sensors (Adjustable sensitivity). Traditional steno machine layout with top number bar.
'''Stock status''' (June 2024): In stock
|Yes
|$50
|-
| [https://www.stenokeyboards.com/products/the-uni-v4 The Uni]
| <img alt="The Uni" src="https://docs.stenokeyboards.com/images/pics/uniAngle.jpg" width="300px" align="right" />
A split, unibody steno keyboard that comes pre-assembled with Gateron Clears (35g).<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $100
|-
| [https://stenokeyboards.com/products/polyglot-keyboard Polyglot]
| <img alt="StenoKeyboards Polyglot" src="https://user-images.githubusercontent.com/7952620/208587451-87f9b998-b5a9-429f-bb8c-a90e1eda099b.jpg" width="300px" align="right" />
A steno keyboard made for both steno and Qwerty. Has QMK. More switches enable normal typing in Qwerty mode or extended steno layout.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $125
|-
| [https://www.stenography.store/ Starboard]
| [https://www.stenography.store/ Stenography Store]
| <img alt="Starboard" src="https://www.stenography.store/media/product_images/starboard-top_nDp8XBE.png" width="300px" align="right" />
An ergonomic steno keyboard with hot-swappable choc pink key-switches and can be screwed onto a tripod.<br><br>'''Stock status''' (June 2024): In stock
|Yes
| $90
|-
|[https://www.lim.au/#/hardware Jarne]
|[https://shop.chenonetta.com Chenonetta Creations]
|<img alt="Jarne" src="https://lim.au/assets/assets/image/jarne1.jpg" width="300px"/>
A wireless, ergonomic, split steno keyboard with per key and underglow RGB, Kailh Choc hotswap sockets, screens, inbuilt security key and 64MB of storage for large dictionaries.
Wireless charging, tenting and tripod mount options available as extras.
'''Stock status''' (September 2024): In stock
|Yes
|$250-$350
|}To set up one of these with Plover, see [[setting up a hobbyist writer with Plover]].
''See also: [[out of production writers]].''
= Stenotype machines =
<img src="https://www.stenograph.com/product/image/large/45009_wave.jpg" width="300"/><span id="supported-protocols"></span>
== Supported protocols ==
Plover supports several protocols that are in use by various machines:
* '''Stentura serial''': most machines by Stenograph and many others.
* '''Gemini PR serial''': typically any recent machine made by the Neutrino Group, such as the Piper, Revolution, or Infinity series.
* '''ProCAT''': protocol used by all ProCAT machines.
* '''TX Bolt''': an older protocol supported by some machines as a primary or secondary protocol.
* '''Treal''': used only by the Treal from Word Technologies.
* '''Passport''': used only by the Passport Writer from Advantage Software.
This means that, in theory, many machines work with Plover.<span id="known-supported-stenotypes"></span>
== Known supported stenotypes ==
The following machines have been confirmed by users to work with Plover after actually trying it:
{| class="wikitable"
|-
! Product Name
! Manufacturer
! Protocol/Connection
! Comments
|-
| Elan Cybra Student
| Stenograph
| Stenograph USB OR TX Bolt (serial)
|
|-
| Flash, Blaze, Impression, and Xpression
| ProCAT
| ProCAT (serial, ''maybe'')
| (For Blaze and other Windows CE-based writers) USB cannot be used with Plover, it is only to transfer files created on the Blaze to your PC or CAT software. USB does not work on Windows 10, only Windows XP (with ActiveSync), and Windows Vista/7/8 with WMDC.exe (Windows Mobile Device Center). Both are abandonware. You need an RJ11 (male) to DB9 (female) to use this writer.
|-
| Flash Writer
| ProCAT
| TX Bolt
| Press <code>Mode</code> (far right button), click <code>Setup</code>, then press the <code>Emul</code> button. Display should read <code>Emulate: Baron</code>
|-
| Gemini2
| Neutrino Group
| Gemini PR (serial)
|
|-
| Gemini RT
| Neutrino Group
| TX Bolt
| Must start a job on screen or in [https://www.infinitytraditional.com/infinity-2/ Infinity2]
|-
| Lightspeed
| Stenovations
| TX Bolt (serial over USB/Bluetooth)
| Baud rate 9600
|-
| Lightspeed Touch
| Stenovations
| Gemini PR, TX Bolt (USB only)
| Must use provided “Lightspeed Zenith” software, not the “Lightspeed” software from the Stenovations website. Protocol can be changed depending on the “Writer Mode” setting in options. Choose “Model II and Model III” at startup.
|-
| Infinity Ergonomic
| Neutrino Group
| Gemini PR (serial over USB/Bluetooth)
| Baud rate 115200
|-
| Infinity Genesis
| Neutrino Group
| Gemini PR (serial)
|
|-
| Passport
| Advantage Software
| Passport (USB)
|
|-
| Passport Touch
| Advantage Software
| USB, Bluetooth
| While in “Emulation Mode”: Stentura over Bluetooth or TX Bolt over USB
|-
| Revolution Grand
| Neutrino Group
| Gemini PR (serial)
|
|-
| Stentura 400 SRT
| Stenograph
| Stentura (serial)
| rowspan="4" | [[Setting up a Stentura 400SRT with Plover|Setup Instructions]]
|-
| Stentura 200 SRT
| Stenograph
| Stentura (serial)
|-
| Stentura 500
| Stenograph
| Stentura (serial)
|-
| Stentura 8000 and 8000LX
| Stenograph
| Stentura (serial)
|-
| Stentura Protégé
| Stenograph
| Stentura (serial) OR Stenograph USB
| Works with the <code>plover-stenograph</code> plugin for USB. For Stentura serial: connect Serial-to-USB cable to serial port of Protégé. [[Setting up a Stentura Protege with Plover|Setup Instructions for Serial]]
|-
| Tréal
| Word technologies
| Treal (USB)
|
|-
| Wave
| Stenograph
| Stentura (serial) OR Stenograph USB
| Requires Stenograph drivers to do serial on Windows. All platforms can use the <code>plover-stenograph</code> plugin. Make sure “serial protocol” on the Wave is set to “Stentura”.
|-
| Luminex II
| Stenograph
| Stenograph USB OR Stenograph Wi-Fi
| All platforms can use the <code>plover-stenograph</code> plugin for USB or Wi-Fi. Make sure the machine is connected to the same local network to use Wi-Fi.
|}
= Standard keyboards =
If you cannot purchase a steno keyboard, you can also use a standard computer keyboard.
See: [[using a standard keyboard with Plover]].
= Video game controllers =
See: [[Video game controllers]]
= DIY steno writers =
See: [[DIY steno writers]]
[[Category:Plover]]
d199df20184ee2f86c3d301360705280f8617cf9
Choosing a steno theory
0
1561
2426
2404
2024-09-03T23:16:42Z
Crorl
1668
/* Realwrite/Realtime theory */ added text
wikitext
text/x-wiki
A steno theory is the set of rules a stenographer learns that allows them to convert words to stenographic outlines. Ideally, the stenographic outlines are a shorthand form for the words that is quicker to input. There are several English steno theories available to learn (some free), and it is easy to become overwhelmed with the choices you have. If you are ever unsure, we recommend starting off with [https://lapwing.aerick.ca Lapwing theory]. However, if you would like to learn more about other available steno theories (and why you might want to learn them), feel free to give this page a read.
== The rationale for multiple English steno theories ==
A common question for those unfamiliar with stenography is, why are there multiple steno theories? And why do they all use the [[Ward Stone Ireland layout|same layout]]? Machine stenography has been around for over a hundred years, so it may seem strange that there is no "standardized" steno theory. The primary reason for this is that languages are complicated and all people interpret the language they speak in their own unique way. English, in particular, has much more variance than other languages. Being one of the most spoken languages in the world, it is very unstandardised in its pronunciation and spelling rules, which vary depending on what regions of the world you are in. Unlike languages like French, the English language has no governing body that defines rules. And for the spelling rules that are somewhat standard, such as for General American English or British English spelling, they still poorly reflect the pronunciation, largely due to the [[wikipedia:History_of_English|many phonological changes]] English has undergone through the centuries.
Being a language with no standard rules, a poor orthography-phonology correspondence, and billions of speakers naturally invites multiple interpretations on how to represent it in shorthand.
=== Homophones ===
Homophones that have different written forms cause [[Glossary#Conflict|conflicts]] for phonetic stenographic theories. First of all, there are many exceptions and edge cases. Different theories take a different stance on how to resolve these exceptions. A method that works well for one person may not be effective for another person.
Constructing outlines for homophones (words that sound the same but are spelled different) is a common difference between steno theories. In Lapwing theory and Plover theory, a word's outline can differ depending on if a homophone exists. For example, the "ee" sound as in "seem" can be either <code>AOE</code> or <code>AE</code>. The word "cream" has no homophones, so it is given <code>AOE</code>. However, the word "team" has a homophone, and thus it is given <code>AE</code>. This isn't ideal because it relies on having to stop and think if a word has any homophones. However, for people who have no problem memorizing these exceptions, this is a perfectly good method.
Some theories deal with homophones entirely [[Glossary#Orthography|orthographically]]. So the words "tear" and "hear" would be written with the same vowel chord, despite being pronounced differently. This is very consistent spelling-wise, but some people may prefer not having to think about spelling—especially when transcribing spoken word.
Steno theories can also handle homophones by just adding an [[Phoenix theory#Disambiguation Stroke|extra stroke]] at the end. If "teem" is given the TAOEPL outline, then "team" would be written as <code>TAOEPL/R-R</code>. This method can be nice because it requires no extra cognitive load; if the wrong homophone was outputted, it can be corrected easily just by pressing another stroke. However, this method relies on having quick finger speed to make up for the extra stroke.
=== Shorter versus longer theories ===
Steno theories exist on a vague continuum between short and long. By definition, short steno theories require fewer strokes for any given text — words are abbreviated and compressed to a great extent. On the other hand, long steno theories require more strokes for any given text because the steno outlines closely resemble the output words — long multisyllable words will require as many strokes as there are syllables. The length of a steno theory is often measured by strokes per word.
* Short steno theories require more cognitive load since there is more mental effort needed to create abbreviated steno outlines.
* Long theories require less mental processing going from words to outlines, but require fast stroke speeds of around 6 strokes per second.
Different individuals may be better with one or the other, or somewhere between. Choosing a theory that is just right can pay off in the learning and speed building process. Both types of theories are used in practice to reach professional certified speeds, so it is entirely the preference of the user.
=== Varieties of English accents and dialects ===
English dialects and accents can affect how words are spelled and pronounced. It is difficult to create an effective steno theory that works for all speakers and writers. For phonetic theories, it is much more practical to have multiple steno theories that tailor to specific variants of English. That being said, pretty much all steno theories (at time of this writing) are based on North American English.
== Open steno theories ==
There are currently three steno theories that are freely available to use. They are fully supported by the Plover app, but have different learning resources that can be found online.
=== Plover theory ===
''See also: [[Plover theory]]''
The Plover app comes with a default dictionary, <nowiki><code>main.json</code></nowiki> that we claim you can learn by learning Plover theory. It originated as Mirabai Knight’s own personal dictionary that she uses for stenocaptioning. The dictionary is very brief-heavy, and outlines are often short. Plover theory has its origins in [[NYCI Steno theory]], where Mirabai learned from, which itself is derived from [[StenEd theory]]. The documentation for Plover theory arose partly as ''an analysis of the dictionary'' donated by Mirabai, and can be understood as an understanding of how Mirabai approaches stenography. The closer your conception of stenography is to Mirabai's, the better you will be at using Plover theory.
As the dictionary of a professional stenocaptioner, it contains outlines for a broad range of subject matter and can be regarded as being much more complete than many other stenographic theories, which often only contain general vocabulary and justice system terminology. Using Plover theory will allow you to approach practically any word you see out there.
However, as a personal dictionary that has been used and built for many years, there are many inconsistencies on application of rules, mistaken definitions, and personalised misstrokes that come with the dictionary. Many of the rules outlined in the documentation for Plover theory are understood to guide you to the correct definition ''most'' of the time. The rules are not complete enough to judge whether or not any strange definitions are correct — this judgement is left to the intuition of the user. These shortfalls often lead to frustration in the learning process. Much of this frustration could be alleviated if people in the community went through the effort of creating a new dictionary based on Plover theory that eliminated inconsistent definitions and mistakes. However, most attempts at doing this result in the creators adding additional rules and spawning new theories, such as ''Lapwing theory''.
For details on how to set up and learn Plover theory, see [https://www.artofchording.com/ Art of Chording]. You can also reference [https://www.openstenoproject.org/learn-plover/home.html Learn Plover], but that resource is outdated.
=== Lapwing theory ===
''See also: [[Lapwing theory]]''
Lapwing theory was created by a community member who wanted to address the shortcomings of Plover theory. It shares many principles with Plover theory, but incorporates new rules—particularly when it comes to writing complicated words. Many regard it as easier to learn than Plover theory due to its improved consistency.
We recommend starting with Lapwing theory because it is more beginner friendly. For details on how to set up and learn Lapwing theory, see the [https://github.com/aerickt/lapwing-for-beginners/wiki Lapwing for Beginners Wiki].
== Proprietary steno theories ==
=== Platinum theory ===
''See also: [[Platinum theory]]''
A '''free''' but proprietary theory for court reporting students [https://platinumsteno.com/downloads/platinum-steno-ncrs-theory-dictionary/ available for download on the Platinum steno website] taught through [https://www.youtube.com/channel/UC-bfgyMjBdFuzhuL4Ff6XqA YouTube videos].
=== Phoenix theory ===
''See also: [[Phoenix theory]]''
A theory known for patenting the [[Vowel Omission Principle]] that reduced conflicts while still allowing the theory to remain highly phonetic.
=== Magnum theory ===
''See also: [[Magnum theory]]''
A brief-heavy steno theory used by Mark Kislingbury, the current record holder for stenography transcription at 370 wpm at 95.4% accuracy.
=== StenEd theory ===
''See also: [[StenEd theory]]''
Possibly the most popular stenographic theory in the industry.
=== Realwrite/Realtime theory ===
''See also: [[Realwrite/Realtime theory]]''
Unique among steno theories for using chords not directly based on the original Ward Stone Ireland. The theory makes use of chords that represent more orthography. The theory was built with realtime writing in mind, unlike other theories which existed before computer transcription and were adapted.
== Which steno theory should you learn? ==
Ultimately, it does not matter which theory you choose when it comes to speed—it is always possible to add more memorization after learning a theory. After all, [[Personalizing your dictionary|customizing your dictionary]] is part of the speed building process. All of the steno theories listed above have the same basic chords, and it is quite easy to switch in the early stages.
3857875623047956aad6b2fa596d08f6502bec01
User:Notmiffed
2
1580
2427
2024-09-07T23:44:00Z
Notmiffed
1660
creation...?
wikitext
text/x-wiki
Empty Test Page For Now
84b966ac96c240b837b96659b920247fd2a49d3b
Lapwing theory
0
1581
2428
2024-09-07T23:57:55Z
Notmiffed
1660
creation of page with link
wikitext
text/x-wiki
Lapwing theory was created in 2022 by a community member to address some conflicts of the Plover theory. It shares many principles but has a strong focus on consistency.
The online textbook for learning [https://lapwing.aerick.ca/ Lapwing theory can be found here.]
56166fcd6212372fb4defda42620a1901a13fbcb
Learning stenography
0
17
2429
2379
2024-09-10T09:37:35Z
Aqwek
1679
/* Other Typing Sites */
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allows you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
* [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register''''' A competitive typing game with a car racing theme. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
22b8549c781cedf860681891484ab106de11cdda
2430
2429
2024-09-10T09:38:14Z
Aqwek
1679
/* Other Typing Sites */
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allows you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
* [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
6f1c92c2aba7e91478a786316e6b67c23b922518
2431
2430
2024-09-10T09:39:04Z
Aqwek
1679
/* Other Typing Sites */
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allows you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
* [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register depending on your operating system''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [https://cdn.discordapp.com/attachments/136953735426473984/856464615469875200/Keyboard_Mapping.png Faded QWERTY]
*** [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png Faded QWERTY, with finger positions]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
3a441b988b41627fa156b3e452956dca27e5ccbc
2438
2431
2024-11-18T00:01:55Z
Waldyrious
1699
/* Cheat sheets */ replace dead links with working ones
wikitext
text/x-wiki
== Suggested Learning Route ==
{{Info|text=This is just a suggestion for people who are unsure of where to start! Feel free to skip parts, or do things out of order, or do other things entirely. The best way to learn is the one you enjoy and can stick to.}}
{| class="wikitable"
!Learning Level
!Suggestion
|-
|Absolute Beginner
|'''[[Learning Stenography#Available Steno Theories|Choose a theory]] and read a [[Learning Stenography#Textbooks|textbook]].'''
'''Join the [https://discord.com/invite/0lQde43a6dGmAMp2 discord]'''. It can be easier to learn with other people. The discord is full of friendly people you can chat to and ask questions about steno and Plover.
'''Read the [[Glossary]]'''. There may be a bunch of terms that come up in the textbooks and when discussing stenography that you'll want to know.
|-
|Learning the Keyboard
|'''[https://joshuagrams.github.io/steno-jig/learn-keyboard.html Learn the Steno Keyboard on Steno Jig]'''. It can be easier to learn where all the keys are on the steno keyboard separately from learning vocabulary, and not dive into chording right away. You will need to [https://joshuagrams.github.io/steno-jig/raw-steno-instructions.html turn off the dictionaries] to use this.
|-
|Learning the keyboard (QWERTY)
|'''Download one of the keyboard [[Learning Stenography#Cheat Sheets|cheat sheets]]'''.
|-
|Beginner vocabulary
|'''Practice writing with a [[Learning Stenography#Practice writing using stenography|steno-focused tool]]'''. Popular tools are [https://didoesdigital.com/typey-type/ Typey Type], [https://joshuagrams.github.io/steno-jig/ Steno Jig] and [https://practiceplover.com/ Practice Plover].
'''Start using [[Using Anki for Learning Stenography|flashcards]]'''. Some people like using flashcards to practice vocabulary and identify problem words.
'''Learn to use [[Learning Stenography#Tools|tools]] and [[Learning Stenography#Plugins|plugins]]'''. These can help you discover how to write new words and briefs that may not come up in early lessons.
'''Check out the [[Misleading Strokes in Plover's Dictionary]] and [[Top 100 English Words in Plover's Dictionary]]'''. It's common to have questions about why a word is stroked that way, or why you should pick one option over the other.
|-
|Intermediate vocabulary
|'''Practice on [[Learning Stenography#Other Typing Sites|other typing sites]]'''. Many of these will have you practicing quotes with unseen text. It can be useful to learn fingerspelling and punctuation before you try these so you don't get stuck.
'''Start adding your own entries to the dictionary'''. Learn how Plover's [[Dictionary Format]] works, and try using the Add Translation dialog to add your own vocabulary and briefs. Every stenographer's dictionary is going to be personal for them (and may be specific to certain contexts). For example, Plover's main dictionary contains many legal and medical briefs which you may want to override with vocabulary you use more often.
|-
|~30wpm
|'''Start using stenography in your day-to-day writing.''' [[FAQ#Can I use Plover for normal computer use?|Check out this FAQ answer for tips]]. (30wpm is roughly where people aren't frustrated with their speed, but this may vary).
|-
|~50wpm
|'''Practice with [https://store.steampowered.com/app/449000/Steno_Arcade/ Steno Arcade], or other slow [[Learning Stenography#Dictation|dictation]]'''. (About 50wpm is what you need for the slowest song included with Steno Arcade, but it's possible to [https://timothyaveni.com/wavelyric/ add your own songs] which you may find easier).
|-
|~100wpm
|'''Consider investing in steno [[Supported Hardware|hardware]]'''. Steno hardware is nice to have at any speed, but at about 100wpm it starts to have a bigger impact on your speed and endurance.
|}
== Available Steno Theories ==
A steno theory is a set of rules used to break down complicated words into steno chords. There are many steno theories available to professionals, and they differ mostly in how much rote memorization is required and how much importance is given to the spelling of words. Theories can also be tailored to a specific dialect of English. For hobbyists, there are three main theories to choose from.
{| class="wikitable"
|+ Freely available steno theories
|-
! !! Description !! Learning resources
|-
| '''Plover''' || The default theory that comes with the Plover app. Used by Mirabai Knight, the founder of the Open Steno Project and a professional stenocaptioner. || Various online textbooks
|-
| '''Lapwing''' || A derivative of Plover theory made for hobbyists and designed to be easier to learn. || Online book
|-
| '''Platinum''' || Similar to Plover theory in basics, but primarily used by court reporters. || Video series available on YouTube
|}
{{Info|text=Unfortunately, all of these theories are based on General North American English.}}
<!-- this section is written like an advertisement; it may need to be rewritten altogether /hj -->
We generally recommend choosing Lapwing theory. It was designed with consistency in mind, and requires less rote memorization than Plover theory. The rules are more defined and less ambiguous, making more complicated words easier to write. The Lapwing theory book is also very comprehensive and covers topics other than writing English words (e.g., symbols, shortcuts, and editing text).
That being said, it is not terribly important which theory you choose. It is not difficult to switch between them after the fact; the basics are all very similar. It also does not matter which theory to choose in terms of speed; a stenographer's speed comes from tailoring their dictionary and adding their own shortcuts that make sense to them.
== Textbooks ==
These sites aim to teach you a steno theory, from the layout to the terminology to the strokes.
=== Plover theory textbooks ===
* [https://www.artofchording.com/ '''The Art of Chording'''] ''The Art of Chording'' is a textbook that aims to guide the student through their stenography learning by providing a broad amount of knowledge from the first lesson on. The goal is to get students writing real words and sentences as quickly as possible and then delve into the minutiae of how to write with Plover's default dictionary quickly and without conflict. It includes additional sections on approaches borrowed from other steno theories that can be found in Plover's default dictionary.
* '''[https://www.openstenoproject.org/learn-plover/ Learn Plover!]''' (EPUB, [https://plover.neocities.org/Learn%20Plover!%20-%20Zach%20Brown,%20Zach's%20Learns%20Plover!.pdf PDF]) ''Learn Plover!'' is a free online textbook by Zack Brown, based on his steno tutoring sessions with Mirabai Knight. It offers a step-by-step introduction to Plover for beginners, with practice material at the end of every chapter. The accompanying exercises are available online in several places, notably [https://joshuagrams.github.io/steno-jig/learn-plover.html Steno Jig] and [https://didoesdigital.com/typey-type/lessons Typey Type].
=== Lapwing theory textbook ===
* '''[https://lapwing.aerick.ca/ Lapwing for Beginners]''' ''Lapwing for Beginners'' is an online guide for Lapwing theory. It offers exercises to be completed with [https://didoesdigital.com/typey-type/lessons Typey Type] and covers a wide range of content. Setting up Lapwing theory with the Plover app is covered in chapter 5.
== Glossary ==
For a glossary of terms used in stenography and plover, see the [[Glossary]] page.
== Tools ==
Plover comes with a lot of [[Built-in Tools|built-in tools]] which are useful for learning, such as:
* Lookup. Write words here to see how you can write them.
* Stroke Suggestions. Suggests alternative ways of writing the words you write.
* Paper Tape. Shows which keys Plover thinks you're pressing.
== Plugins ==
Check out [[Plugins]] for how to install plugins.
Check out the [https://github.com/openstenoproject/awesome-plover#plugins awesome-plover page list of plugins] for a longer list of awesome plugins.
Here are 3 community favorites.
* [https://github.com/fourshade/spectra_lexer Spectra Lexer] This is like the lookup or suggestions window, but with a lot of extra features such as explanations for why a word is briefed that way and diagrams. There is also a [https://spectra.sammdot.ca/ web version] and a bot in the [https://discord.gg/0lQde43a6dGmAMp2 discord server], though these only use the default Plover dictionaries and not any additional user dictionaries you may have.
* [https://github.com/tckmn/plover_clippy Plover-clippy] or [https://github.com/Josiah-tan/plover_clippy_2 Plover-clippy-2] Logs suggestions that are more efficient than what you used to type to a file in your plover configuration directory. Useful for finding new briefs, especially for phrases. By default the output of Plover-clippy-2 is written into <code>clippy_2.org</code> in your config folder, which you can open from Plover's menu item "Open config folder". Open the clippy file in a text editor and review it from time to time to see what you could type more efficiently.
* [https://github.com/Kaoffie/plover_word_tray Plover Word Tray] Automatically looks up efficient outlines for words that start with the current input, much like autocomplete suggestions. It's similar to the [[Built-in Tools#Lookup tool|lookup window]] and [[Built-in Tools#Stroke suggestions|suggestions window]] in one. In addition, if you are stuck on a word, you can start fingerspelling it or sound out the first syllable and it'll try to guess what you're trying to spell.
== Practice writing using stenography ==
=== Practice material and tools made for stenography ===
* [https://didoesdigital.com/typey-type/ Typey Type for Stenographers] Type Type for Stenographers is a drilling and learning resource with a fair amount of practice material and detailed quantitative feedback. It includes lessons that follow the [https://www.openstenoproject.org/learn-plover/ Learn Plover!] book and lets you [https://didoesdigital.com/typey-type/lessons/custom/setup upload your own practice material]. It also has [https://didoesdigital.com/typey-type/dictionaries dictionaries], [https://didoesdigital.com/typey-type/flashcards flashcards], [https://didoesdigital.com/typey-type/progress recommendations] on how much of which lesson to do next, a [https://didoesdigital.com/typey-type/break break timer], a lookup tool, and a [https://didoesdigital.com/typey-type/writer diagram generator]. Beginners may want to reduce the word count and/or repetitions in the settings to make the lessons a more reasonable length. (Doing 45×3 words at 5 WPM takes 27 minutes!)
* [https://joshuagrams.github.io/steno-jig/ Steno Jig] Steno Jig has a wide variety of words, sentences, etc that you can practice with optional stroke suggestions. There are several beginner drills, and a large set of vocabulary words, and sentence practice drills that you can work through to gradually learn the top 8,000 most used words. It has [https://joshuagrams.github.io/steno-jig/learn-plover.html Learn Plover! drills] with stroke hints and lookahead display.
* [https://biffbish.github.io/steno-grade/ Steno Grade] Steno Grade is a fork of Steno Jig that aims to improve interface and add functionality. It has a built in spectra integration within its hint system and more configurable grading options. The page is in early beta but stay tuned to see updates.
* [https://practiceplover.com/ Practice Plover] Practice Plover is a newer tool and still under construction. It has a whole set of interactive beginner exercises, many with audio, taking you most of the way through the material covered by Learn Plover.
* [http://qwertysteno.com/Home/ Qwerty Steno] Qwerty Steno is a fantastic resource which has a tutorial on steno theory written by Mike Neale of the Open Steno community. It is made for use with a qwerty keyboard, without needing to download or enable Plover.
* [https://noahrayroberts.com/apps/the-steno-grind/ The Steno Grind] The Steno Grind provides interactive drills for any combination of exercises from ''The Art of Chording''.
* [http://ploverdojo.appspot.com/ Plover Dojo] (unavailable) A lovely visual approach to learning the keyboard and basic chords, using a standard QWERTY keyboard, by JR, Jay Liu, and Myrntillae Nash.
* [[Top 100 Words in Plover's Dictionary]] A small tutorial covering the top 100 English words according to Wikipedia. Many of them are briefs and this text gives some insight as to why these strokes are the way they are.
* [https://www.stenoshortcake.com/ StenoCycle] Driving game - early prototype, but does let you drill your own words and phrases.
=== Dictation ===
If you want to eventually caption speakers, you will need to be able to take dictation.
* [http://store.steampowered.com/app/449000/ Steno Arcade] Steno Arcade is a project funded by the Open Steno Project, developed by [http://www.foralltoplay.com/ For All To Play]. It contains Steno Hero, a game where you write lyrics in time with a singer and get graded on accuracy. You can create custom song files for use in the game by using [http://timothyaveni.com/wavelyric/ wavelyric]. The easiest song requires a speed of about 50 WPM.
* Television Try captioning your favorite TV show once you are able to. Nature documentaries are especially good for beginners because they tend to have long pauses between dialogue.
* Twitch and other streaming sites Game streams can provide a variety of casual vocabulary and, depending on the streamer, have enough pauses to be easier.
* [https://youtube.com/ YouTube] You can find a variety of videos on YouTube. There are videos specifically for dictation (search "dictation X WPM"), as well as material designed for ESL students, and speeches by your favorite speaker. You might want to download a browser extension (available for both Chrome and Firefox) which allows you to control the video playback speed with more fine-tuned control.
* [https://www.youtube.com/c/PlatinumSteno/playlists Platinum steno] Platinum steno is a court reporter course that is now free for all on YouTube. It provides theory lessons (although it uses a different theory to Plover's), and a large amount of dictation material from 60 WPM to 225 WPM. Paul Fioravanti has written two excellent blog posts on following their course: [https://www.paulfioravanti.com/blog/going-platinum/ one on doing the theory courses after learning Plover theory], and [https://www.paulfioravanti.com/blog/plover-for-the-record/ one more general post on using Plover with Q&A style dictation].
* [https://stenonymous.com/2017/08/12/resource-page/ Stenonymous's Resource Page] This resource page has lots of great resources, including links to many dictation services. It also has information on whether or not they are paid services and what speed they go up to.
* [http://stenotube.com/category/practice-dictation/ StenoTube] A selection of dictations, though mostly at higher speeds.
* [http://www.pitmanlondon.co.uk/shorthandspeed/ Pitman London] Pitman London has a page of dictation for people learning pen shorthand. The dictation ranges in speed from 40WPM to 130WPM.
* [https://the-ips.org.uk/examinations/dictation-practice/ IPS] Dictations ranging from 100 WPM to 280 WPM.
* [http://courtreportinghelp.com/ Court Reporting Help] CRH has some free dictation posts. Especially useful is the Magic Drill, for beginners and experts alike.
* [http://englishlearning.webgarden.es/menu/1st-and-2nd-eso-year/easy-reading-texts englishlearning.webgarden.es] This repository of ESL resources has some simple texts with slow dictation. In particular, "Easy Reading Texts" for 1st and 2nd year students and "Reading Texts" for 3rd and 4th year students tend to be dictated at around 100 WPM.
* [https://www.stenolife.com/index.php/site/dictation/index www.stenolife.com] Many short pieces are available across a wide range of speeds. Making an account is required.
* [http://www.ev360ultimate.com/ev360u/moodle/login/index.php www.ev360ultimate.com] A repository with longer pieces and guided practice sessions. Making an account is required.
* Make your own: Christopher Day has an article on [https://stenonymous.com/2019/09/21/how-to-create-timed-dictation/ How to Create Timed Dictation] and Josh Grams has a [http://joshgrams.com/2022/01/17/drillmaker.html tool for adding timing marks] (which can also repeat/shuffle lists of problem words, if you want to dictate those at a particular speed).
=== Volunteer Projects Needing Transcription ===
* [https://crowd.loc.gov/ Library of Congress By the People Project] Volunteer project transcribing historical texts.
=== Other Typing Sites ===
Sites not made for steno are not ideal for use with Plover, but they offer good quality practice material for the intermediate stenographer, or to judge your skills with a metric.
Depending on the site, you might want to adjust Plover's spacing setting (before or after).
* [https://www.typination.com/ TypiNation] Multiplayer typing game with a stenography user option. Has a mode to show steno strokes for each word based on the Plover default dictionary.
* [https://keyma.sh/ keyma.sh] Multiplayer typing website public racing rooms.
* [https://monkeytype.com/ monkeytype] ''Some steno users have reported having their scores not saved as they were detected as bot-like'' Typing game with many different modes, including copy practice, timed practice, and quotes. (The quotes are now available on [https://joshuagrams.github.io/steno-jig/form.html Steno Jig] as well). You may want to change some settings for steno input to work well:
{| class="wikitable"
!setting name
!setting
!notes
|-
|freedom mode
|on
|Allows you to delete any word, even if typed wrong
|-
|strict space
|on
|Spaces are strict. This can make it harder, but it's recommended to keep it on so that you know what is/isn't a prefix or suffix stroke
|-
|stop on error
|off
|Allows you to write incorrect characters
|-
|confidence mode
|off
|Allows you to backspace
|-
|quick end
|off
|If on, means that the test will end as soon as the last word is typed, even if incorrect
|-
|indicate typos
|below/replace
|Show typos
|}
* [https://zty.pe/ ZType] Vertically scrolling shooter: write the words to shoot them. Nice graphics and sound effects. Press enter to save yourself with one of your three bombs, asterisk/backspace to unlock it when it locks onto the wrong word.
* [http://typeracer.com/ TypeRacer] '''''Now bans steno users who show up in leaderboards''', a sudden flip after years of steno users being allowed on the site'' Online realtime typing competition. '''Use the [https://play.typeracer.com/?universe=steno steno universe] to avoid getting banned''' (but it does mean racing against fewer real people). There is an input character limit which can get in the way when writing fast or writing phrases. You can install [https://greasyfork.org/en/scripts/35832-typeracer-no-input-limit this user script] to get around the limit ([https://greasyfork.org/en instructions]).
* [https://10fastfingers.com/typing-test/english 10 Fast Fingers] '''''Bans steno users who break 100WPM''''' Short test of most common words.
* [https://nitrotype.com Nitro Type] '''''Best to use 1ms key delay for all keys to register depending on your operating system''''' A competitive typing game with a car racing theme. Pressing enter skips a the next word. It uses a stop on error method, which can make multistroking hard. It also has a lot of science words and other less common words. There is also a [https://nitrotype.com/team/STENO steno team] for people to join.
== Flashcards ==
You can use flashcards to help you memorize briefs, theory rules, phrases and more. See [[Using Anki for Learning Stenography]] for more details on how to get set up and community materials.
== Cheat sheets ==
Quick image and text references.
* QWERTY to steno layout
** [https://lh3.googleusercontent.com/-w2QPSfUjHo8/V18o1J9cZNI/AAAAAAAAA-s/qPYSz2XkJhoLARsznLA_rMAq26i_G6oPgCLcB/s1600/US.png Steno board next to the QWERTY layout]
** Steno keys on top of a QWERTY keyboard
*** [http://i.imgur.com/qIh1iJ0.png Full keyboard]
*** [[:File:Steno keys_on_QWERTY keyboard by Jen.png|Faded QWERTY]]
*** [[:File:Steno keys on QWERTY keyboard, with finger positions.png|Faded QWERTY, with finger positions]]
* [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet Learn Plover! Cheat sheet]
** [https://docs.google.com/file/d/1Yi93aHaxe3L-_ePtq3bujv7o1CCLmmgim8iuL_Sx2IY/edit Chart with all the standard sounds in Plover on the steno board]
** [https://docs.google.com/file/d/1grC3Bv3FCAVeNez4OzjzkGJDwQj4JouclzXNdpWzyF4/edit Which fingers to use for each key]
** [https://docs.google.com/file/d/1jhAEN4NfSmbCcuLRug_h1TKdWSKOcQYAxlkFuBopXs4/edit Steno order]
** Quick text references for:
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Fingerspelling Fingerspelling]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Briefs Briefs]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Prefix-And-Suffix-Strokes Prefix/Suffix strokes]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Non-Letters Non-letters]
*** [https://www.openstenoproject.org/learn-plover/appendix-cheat-sheet#TOC-Numbers Numbers]
* [https://steno.sammdot.ca/explainers Steno Explained]
** [https://steno.sammdot.ca/steno-terminology.png Steno Terminology]
** [https://steno.sammdot.ca/plover-basics.png Plover Theory Basics]
** [https://steno.sammdot.ca/plover-numbers.png Numbers]
** [https://steno.sammdot.ca/plover-fingerspelling.png Fingerspelling]
** charts for popular dictionary systems (e.g. for symbols and phrasing) and other language theories also available on [https://steno.sammdot.ca/explainers Steno Explained]
[[Category:Stenography]]
625e80dd0baf844ccac446b3429ba00f7fc397a6
User:MarjorieJowett
2
1582
2433
2024-10-13T06:33:32Z
MarjorieJowett
1681
Created page with "The science behind ABA treatment is based in evidence-based strategies that trigger significant enhancements in the lives of youngsters with autism in Atlanta, Georgia. With a concentration on individualized therapy plans and data-driven choices, ABA therapy delivers an organized method to ensure beneficial behavior change. As family members hunt for ABA therapy in Atlanta, they may be actually self-assured that they're selecting an approach that has been actually reveal..."
wikitext
text/x-wiki
The science behind ABA treatment is based in evidence-based strategies that trigger significant enhancements in the lives of youngsters with autism in Atlanta, Georgia. With a concentration on individualized therapy plans and data-driven choices, ABA therapy delivers an organized method to ensure beneficial behavior change. As family members hunt for ABA therapy in Atlanta, they may be actually self-assured that they're selecting an approach that has been actually revealed to work. Whether by means of in-home services or even school-based support, ABA therapy is actually transforming lives, inspiring kids, and supplying chance for loved ones navigating the difficulties of autism.<br><br>my website :: [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=9286934 Article Source]
b08a9c0a424ae32c6d54858343f27a7bfd06147d
FAQ
0
15
2434
2166
2024-11-05T00:57:09Z
Aqwek
1679
/* Why isn't steno more popular than QWERTY? */
wikitext
text/x-wiki
== Plover ==
=== What is stenography? ===
<youtube>62l64Acfidc</youtube>
Stenography is a form of shorthand writing/typing, usually done on a special machine (although with Plover, you can use computer keyboard that has n-key rollover). It was invented in the early 1900s.
Real-time machine stenography is a code translation system that lets users enter words and syllables by pressing multiple keys simultaneously in a chord, which is then instantly translated into English text.
=== How fast can stenographers write? ===
{| class="wikitable"
!Method
!Typical Speed
|-
|Handwriting
|30 WPM
|-
|Average Typist
|40 WPM
|-
|Fast Typist
|120 WPM
|-
|Fastest typists
|200 WPM
|-
|Voice Writer
|180 WPM
|-
|Average Speech
|200 WPM
|-
|Amateur Stenographer
|160 WPM
|-
|Professional Stenographer
|225 WPM
|-
|Steno World Record
|370 WPM
|}
Professional stenographers with a lot of experience can transcribe spoken English at up to 300 words per minute for sustained periods of time (longer than a minute). By comparison, the fastest typists are limited to around 230 words per minute for texts with comparable material (though, shorter in length). Conceivably, with practice, amateur steno users could reach 160-200 words per minute.
(also see [[FAQ#How long does it take to learn?|How long does it take to learn?]])
=== What is Plover? ===
Plover is a 100% free, open source steno program that lets you use your keyboard as a steno machine. It is a small Python application that you run in the background. It translates the steno strokes to text (by emulating keyboard presses), so you can use steno with any computer program.
Plover is available on Windows, Mac and Linux. To get started, follow the [[Beginner's Guide]].
=== Why "Plover"? ===
The short answer is that it's a two-syllable, six-letter word that can be written in a single stroke on a steno machine. The longer answer is [http://plover.stenoknight.com/2010/03/why-plover.html here].
=== Who's responsible for Plover's development? ===
Plover was originally created by [http://www.blogger.com/profile/16494847224950297255 Mirabai Knight] and [http://launchpad.net/~joshua-harlan-lifton Joshua Harlan Lifton], and is the software arm of [https://openstenoproject.org/ The Open Steno Project], an umbrella organization for open source steno tools. The current maintainer is Sammi de Guzman (Jen).
=== Why does Plover exist? ===
Falling numbers of graduates from steno schools and the high attrition of retiring stenographers initially caused [http://stenoknight.com/ Mirabai Knight] to worry about the future of her profession, as inferior non-verbatim systems (e.g. ER, Typewell, C-Print, automated speech recognition) threaten to fill in the supply vacuum caused by a shortage of steno professionals.
At the same time, she saw steno's great potential in helping to improve the lives of the large number of people who work in front of computers all day, whether they're writing prose, creating software, entering data, or communicating in text with friends and coworkers. As a method of text entry, QWERTY is inefficient and unergonomic, but so far it hasn't been supplanted by any of the competing systems (such as [http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard Dvorak] or [http://en.wikipedia.org/wiki/Keyboard_layout#Colemak Colemak]), because they're simply not powerful enough to justify the time investment necessary to learn them. Steno, on the other hand, is.
So Plover has a double-pronged approach:
# Find people who want to learn steno, whether just as amateurs or as aspiring professionals, and give them a cheap, simple, and fun way to try it out.
# Then, for those few who find that they've got both a gift and a passion for steno, provide an opportunity to turn that skill into a career, feeding the talent pools for future professional stenographers and ensuring that steno as a profession will survive into the future.
=== How does Stenography compare to typing? ===
* Typing is (usually) data entry with single fingers
Most likely, you are using a QWERTY or Dvorak keyboard layout to type everything out character by character. If you have ever practiced piano, it might be helpful to liken them to certain piano pieces common in a pianist's repertoire. The "typewriter-style" systems (QWERTY, dvorak, etc.) are like [https://www.youtube.com/watch?v=tvm2ZsRv3C8 Chopin's Fantasie Impromptu].
Notice how this piece — like typing — is mainly runs of single fingers. When you learn and practice this piece, you often do many finger exercises to strengthen certain fingers to increase your speed.
* Stenography is chorded data entry, using multiple fingers
However, Plover, and other steno systems, use keyboard "chords" to type syllables, words, or entire phrases. You press keys, and lift off, rather than pressing down individual keys one after the other.<blockquote>"When your fingers are in position, press them all down together, and release them. Out comes the word 'tap'! You've just tapped your first word in steno! Notice that it doesn't really matter that all the keys go down absolutely simultaneously. The only thing Plover cares about is that there's one moment in time when all three keys are down together."
— [https://sites.google.com/site/learnplover/lesson-1-fingers-and-keys Learn Plover!]</blockquote>Plover — and all steno systems — express words primarily as groups of sounds rather than groups of letters of the alphabet.
"Steno-style" systems (NYCI, StenoEd, Phoenix, etc.) are like [https://www.youtube.com/watch?v=4QB7ugJnHgs Rachmaninoff's Prelude in G Minor].
Unlike the Chopin, this piece is almost entirely chorded. When learning a piece like this, you learn how to block your chords. So your approach to learning steno may be completely different than learning a different keyboard layout, since it's a completely different system.
=== What does using Plover look like? ===
{| class="wikitable"
!'''QWERTY versus Stenography on Steno Arcade'''
!'''Plover wins the race!'''
!'''Demonstration of Plover with Qwerty Keyboard'''
|-
|[https://youtu.be/UtQzTUEuPWo?t=8s <img src="https://i.ytimg.com/vi/UtQzTUEuPWo/hqdefault.jpg" alt="QWERTY versus Stenography on Steno Arcade" />][https://youtu.be/UtQzTUEuPWo?t=8s <br/>(click to view video — 3:25)]
|[https://www.youtube.com/watch?v=jkUyg_uoidY <img src="https://img.youtube.com/vi/jkUyg_uoidY/0.jpg" alt="Plover Wins the Race!" />][https://www.youtube.com/watch?v=jkUyg_uoidY <br/>(click to view video — 0:30)]
|[https://www.youtube.com/watch?v=JXQQzW99cAI <img src="https://img.youtube.com/vi/JXQQzW99cAI/0.jpg" alt="Demonstration of Plover with Qwerty Keyboard" />][https://www.youtube.com/watch?v=JXQQzW99cAI <br/>(click to view video — 1:05)]
|-
|'''Realtime Text to Speech with Plover'''
|'''Coding in Stenography, Quick Demo'''
|'''Rails 7: The Steno Demo'''
|-
|[https://www.youtube.com/watch?v=K3MYFT6VZk8 <img src="https://img.youtube.com/vi/K3MYFT6VZk8/0.jpg" alt="Realtime Text to Speech with Plover" />][https://www.youtube.com/watch?v=K3MYFT6VZk8 <br/>(click to view video — 3:36)]
|[https://www.youtube.com/watch?v=RBBiri3CD6w <img src="https://i.ytimg.com/vi/RBBiri3CD6w/hqdefault.jpg" alt="Coding in Stenography, Quick Demo" />][https://www.youtube.com/watch?v=RBBiri3CD6w <br/>(click to view video — 2:00)]
|[https://www.youtube.com/watch?v=q7g0ml60LGY <img src="https://i.ytimg.com/vi/q7g0ml60LGY/hqdefault.jpg" alt="Rails 7: The Steno Demo" />][https://www.youtube.com/watch?v=q7g0ml60LGY <br/>(click to view video — 2:08:59)]
|}
=== How does it compare to alternative layouts like Dvorak and Colemak? ===
In terms of speed, professional stenographers are expected to get to 225wpm at minimum, and [https://youtu.be/nETlhthG22Q the world record is 360wpm]. Audiobooks are narrated at around 150wpm ([https://help.acx.com/s/article/how-long-will-my-narrated-audiobook-be source from an Audible/iTunes book provider]). Barbara Blackburn, arguably one of the fastest Dvorak typists, has achieved a peak speed of 212wpm on Dvorak.
In terms of comfort, many people say than stenography is more comfortable. Here is [http://plover.stenoknight.com/2010/05/ergonomic-argument.html Mirabai's article on the ergonomic argument for stenography]. There are fewer keys and therefore less finger movement. You write chords, not letters, so that reduces vertical movement. And you don't write out every single character — spaces are automatically inserted, and you can write whole words and phrases with a single stroke.
=== If I learn steno, will it make using QWERTY harder? ===
If you have used alternative layouts like Dvorak and Colemak, you might have found that learning one would make it harder to use QWERTY (e.g. needing time to warm up when changing layouts, losing speed).
From reports of users in the [[The_Steno_Community |Plover discord]], most people don't seem to experience this with steno and QWERTY in the same way. This could be because:
* Chorded input is very different from typing, so the muscle memory doesn't interfere as much
* Steno is typically used on hardware that feels very different (e.g. non-staggered, light keys)
Although some people have reported difficulty in typing after learning steno, this seems to be limited to a smaller group of people.
=== Why isn't steno more popular than QWERTY? ===
There are a number of possible reasons:
# Stenography was copyrighted for many decades, which limited the amount of competition in the marketplace.
# The vendors decided to focus on high value products in market sectors where organizations would be willing to pay higher prices. Professional hardware and software can cost several thousands of dollars.
# It takes longer to learn how to write with steno than it does learning how to type. (See [[FAQ#How long does it take to learn?|How long does it take to learn?]])
# Plover software, and [[Supported Hardware|suitable low cost hardware]], didn't exist until recently.
# Stenography is not mainstream, being a niche profession that most people have never heard of.
=== Will stenography be replaced with automatic voice recognition? ===
Mirabai Knight has done [https://www.youtube.com/watch?v=XKe1O7ppyqQ a presentation] on this topic. As a summary, automatic voice recognition is still not accurate enough in certain situations such as if there is bad audio, someone speaking with a non-standard accent, or if the cost of certain mistakes is too high. Especially for events with multiple speakers, a lot of equipment is needed just to record audio (quality microphones for each speaker, mixers, etc). Additionally, a human, in the form of an audio engineer, is still required to monitor the audio and ensure everyone's microphone is working or clipped on properly. For many situations, having a stenographer present is the easier solution. Stanley Sakai has an [https://medium.com/swlh/in-an-age-of-high-definition-digital-audio-why-do-we-still-use-human-stenographers-60ca91a65f39 in depth article] covering the recording issue with a lot more detail.
=== What theory is Plover's default dictionary based on? ===
It's basically Mirabai Knight's personal dictionary from many years ago, which is a mix of New York Career Institute theory and Sten Ed, with several thousand tweaks, briefs, and additions of her own.
=== Where can I find other people who use Plover? ===
Check out these [[The Steno Community|links to the community]].
=== How can I help? ===
The Open Steno Project is run by volunteers.
You can help by:
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#contributing-code Contributing code]
* [https://github.com/openstenoproject/plover/blob/master/CONTRIBUTING.md#reporting-issues Reporting issues]
* [[Plover Wiki#Contributing to the Wiki|Editing this wiki]]
* [[The Steno Community|Getting involved in the community]]
* [https://www.openstenoproject.org/donate/ Donating money]
* Telling people about Open Steno, Plover, and stenography!
== Using Plover ==
=== How can I get started? ===
The [[Beginner's Guide]] has everything you need to get started, including how to install Plover, what hardware you need, and how to practice and learn.
=== What hardware do I need? ===
You can just get started and try Plover out on the keyboard you are using right now.
However, some keyboards will be easier to use for stenography than others. Features to look out for are:
* [[Supported Hardware#Keyboards|NKRO]], so you don't have to [[Beginner's Guide#Arpeggiate|arpeggiate]].
* No stagger and a smaller gap between keys, so that you can easily press keys that are next to each other. However, it's possible to [[Supported Hardware#Adapt a keyboard for steno use|adapt a keyboard]] to work better for steno.
* Lighter keys, so it's less fatiguing.
[[Beginner's Guide#Connect a compatible keyboard or stenography machine|Find more information in this section of the beginner's guide]], or in the [[Supported Hardware#Keyboards|keyboards section of the hardware page]].
=== Can I still get by without a professional machine? ===
Yes, Mirabai Knight wrote in [http://plover.stenoknight.com/2019/12/georgi-review.html her review of the Georgi] that she was able to caption 8 hour conferences with no fatigue. General consensus is that this should also be possible with other [[Supported Hardware#Dedicated machines designed for use with Plover|hobbyist steno machines]].
This isn't to say that professional machines do not have some benefits:
* They do not require a computer, instead they can store text on the machine
* The pressure and sensitivity can be adjusted on the fly and per key
* The amount of force you need to use is similar regardless of the number of keys you press. With keyboards, where each key is separate, a stroke that uses 8 keys will require 8 times the amount of force as a single key
[https://thomasbaart.nl/2019/01/24/exploring-professional-stenotype-machines/ Thomas Baart's post "Exploring Professional Stenotype Machines"] goes into more of the features that professional machines have.
=== Can I use Plover for normal computer use? ===
Yes! Plover can send nearly every keyboard key or combination you like. See the [[Dictionary Format|dictionary format]] for more information.
The only limitation is that it cannot hold down keys (for example, if you want to shift+drag). There is currently a [https://github.com/openstenoproject/plover/pull/1278 pull request] for this, so hopefully it will be possible soon.
Since there are many symbols and modifiers and not all of these are defined in the default Plover dictionaries, you may be interested in some dictionaries and plugins other people have made:
* [https://github.com/EPLHREU/emily-symbols Emily Symbols], for typing symbols (including those not in the main Plover dictionary)
* [https://github.com/EPLHREU/emily-modifiers Emily Modifiers], for typing with modifiers (e.g. ALT+D, CTRL+-, SUPER, SHIFT+F5)
* [https://github.com/4hrue2kd83f/abby-left-hand-modifiers Abby's Left Hand Modifiers], for typing with modifiers but keeping the right hand free
* [https://github.com/morinted/plover_emoji Plover Emoji], for typing emoji
=== Can I use Plover for programming? ===
Yes, and many people do! That being said, it is a huge time investment, and makes sense mostly for the ergonomic benefit only.
For example:
* The author of [https://www.artofchording.com/ Art of Chording] (a Plover theory textbook) is a programmer and he has some videos of him programming with steno: [https://www.youtube.com/watch?v=RBBiri3CD6w Coding in Stenography, Quick Demo], [https://www.youtube.com/watch?v=711T2simRyI Raw unedited steno coding demo]
* [https://www.paulfioravanti.com/ Paul Fioravanti] recreated DHH's rails 7 demo using steno: [https://www.youtube.com/watch?v=q7g0ml60LGY Rails 7: The Steno Demo]
* Mirabai Knight, who started Plover, has a [https://www.youtube.com/watch?v=jRFKZGWrmrM demo of her transcribing some of Plover's python source code]
To make programming easier with steno:
* For writing words/symbols used in programming, you can define a dictionary for them. You may want to use a dictionary someone else has already made, or look there for inspiration:
** Specific dictionaries
*** [https://github.com/EPLHREU/emily-symbols Emily Symbols] for writing symbols.
** Dictionary collections which include some programming related dictionaries
*** [https://www.openstenoproject.org/stenodict/ stenodict] a user-submitted collection of dictionaries
*** [https://github.com/didoesdigital/steno-dictionaries Di's steno dictionaries], the creator of Typey Type (and whose programming dictionaries can be [https://didoesdigital.com/typey-type/lessons#tech practiced on the site])
*** [https://github.com/EPLHREU/emily-dictionaries Emily's dictionaries]
*** [https://github.com/antistic/steno-dictionaries Antistic's dictionaries]
*** [https://github.com/paulfioravanti/steno-dictionaries Paul's dictionaries]
*** [https://github.com/Josiah-tan/plover_dict Josiah's dictionaries]
* For writing in snake/camel/pascal/etc. case: You can set [[Dictionary Format#Output Modes|typing modes]], control capitalization, or type symbols like <code>_</code>. There are also various plugins (see a list [https://github.com/openstenoproject/plover/discussions/1355 here]) which lets you do this retroactively.
* Since it's harder to use both the mouse and steno at the same time, you may also want to learn how to use more keyboard shortcuts. Check out the question [[FAQ#Can I use Plover for normal computer use?|"Can I use Plover for normal computer use?"]] above.
=== Can I use Plover for languages other than English? ===
Plover supports custom systems, so it's possible to use different language systems in Plover. Here's a list of current [[Steno Layouts and Supported Languages|chorded systems]] that have been made.
If you want to fingerspell with non-English letters, JorWat has a [https://github.com/JorWat25/dictionaries/blob/main/diacritics.json fingerspelling dictionary for diacritics] (e.g. é, ç, ø, ñ etc.).
Unfortunately, due to the lack of learning resources for other languages, it is usually advised that you learn the English system first so that you get a good understanding of stenography before learning another system.
The '''#multilingual''' channel on the [https://discord.gg/0lQde43a6dGmAMp2 discord server] is likely the best place to seek support for other languages.
=== How long does it take to learn? ===
You can see the [https://docs.google.com/forms/d/1lPX-DkdqNm0L0JfgjjxwQqvYxwSMtB8HmiMCcIhAcS0/viewanalytics 2021 community survey results] to see how long people have been learning stenography, and what their speed is. It is reasonable to get to around your qwerty speed in about 6 months, though of course it depends on your qwerty speed and how you practice.
Aerick made a [https://www.youtube.com/watch?v=28v3cm21uAA youtube video showing his progress over 5 months], where he was able to get to 100-160wpm, depending on the text.
People in professional stenography schools often expect to take about 2 years to get to 225wpm with 98% accuracy. However, stenography school is not a necessarily a one-to-one comparison to your personal use case, since it is designed as a track to being a professional court reporter/live captioner/CART provider etc. This may involve learning specific legal terminology, medical terminology, CAT software training, how courts work etc.
=== What's a brief/stroke/arpeggiating/etc.? ===
You can find a list of commonly used terms in the [[glossary]].
=== What can't Plover do? ===
For general information on what Plover cannot do, see the open feature requests. If there's something you'd like Plover to do that it currently doesn't, you can open a feature request of your own.
* Sticky Metakeys (issue [https://github.com/openstenoproject/plover/issues/72 #72])
Plover lacks arbitrarily stackable metakeys. You can explicitly define a metakey+key combination in the dictionary (and there is a dictionary for general shortcuts such as <code>Control-C</code>), but you can't map a stroke to, say, <code>Control</code> and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.
* Transcript management and workflow
Plover is not court reporting (CAT) software, and there are no plans to make it into CAT replacement software. It has no transcript preparation utilities of any kind. For example: document approval and delivery workflow, document encryption, or file management. See [[FAQ#Is Plover going to put CAT software companies out of business?|Is Plover going to put CAT software companies out of business?]].
=== Why does steno use dictionaries? ===
See [[Personalizing your dictionary#The dictionary's purpose|Personalizing your dictionary.]]
=== How do I write a word that's not in my dictionary? ===
You can use fingerspelling—a letter-by-letter spelling technique. If you use this word often enough, you should add it to your dictionary after.
== Comparisons to professional stenography ==
=== Why does steno need amateurs? ===
In most skill-based fields — music, photography, athletics, and computer programming, to name a few — a healthy pool of amateurs makes it possible for professionals to exist. People cultivate an interest, buy some cheap equipment, take a few classes, discover that they love the work, hone their skills with thousands of hours of practice, and eventually a very dedicated and talented few are able to become good enough to make a living at what they love. The rest do it without compensation, just for their own pleasure and enjoyment. This is the natural ecosystem of any difficult skill: A wide base of dabblers and dilettantes at the bottom, and a small number of world class hotshots at the top.
Without a steady supply of amateurs to hold the ranks, it's difficult for professionals to exist. Many legendary musicians started out with a $50 guitar and a tattered songbook. If every guitar cost $5,000 and the only way to learn how to play it was at a conservatory, how many potentially great guitarists would never even get within strumming range? Plover reduces the $1,500+ initial startup cost of steno to around $70, which means vastly more people can give it a try and see if it might be for them.
=== What is Steno Arcade? ===
<img src="https://cdn.cloudflare.steamstatic.com/steam/apps/449000/header.jpg?t=1567716732" alt="Steno Arcade" />
[http://store.steampowered.com/app/449000/ Steno Arcade] is a suite of arcade games designed to teach and drill steno fundamentals in an immersive, addictive, responsive, and interactive way.
==== Is Steno Arcade going to put steno schools out of business? ====
Very unlikely. There will always be a place for high-speed dictation and one-on-one interaction between steno professionals and students. Steno Arcade will be directed at people who want to use steno non-professionally, aren't sure whether steno is for them, or who want to try it out a bit before committing to making it a definite career goal.
There will always be some autodidacts who can get through the Steno Arcade program entirely by themselves and find themselves certification-ready at the end of it, but that will probably be fairly rare.
=== How is Plover different from commercial steno programs? ===
Well, first off, it's free. Free to distribute, free to modify. No dongles, no upgrade fees, no constraints. That's already a $4,000 difference.
To the developer's knowledge, it's also the only steno software that works on a buffer-based system rather than a timer-based system, and that has direct access to the OS rather than filtering everything into a steno-specific word processor. This means it's lightweight, powerful, and doesn't require a 1.5-second wait time between when a stroke is entered and when the translation appears in an external program. In Plover, the translation appears instantly, and the software isn't cluttered up with file managers, printer handlers, and other court-reporting flimflam that an amateur stenographer will never use. Instead, it's a direct conduit between the steno keyboard and the OS. Plover can do everything a qwerty keyboard can do – but much, much faster.
=== Is Plover going to put CAT software companies out of business? ===
Definitely not. Plover is not court reporting software. It has no transcript preparation utilities of any kind. However, it might prove useful to people who use other CAT systems for their work but would like to use Plover as a replacement for their qwerty keyboard in daily computing tasks. At some point Plover might become a solid option for CART providers, but there are no plans to make it into CAT replacement software for either court reporters or broadcast captioners.
=== What are some features in Plover not commonly found in most CAT software? ===
# Plover's main purpose is to replace the qwerty keyboard with a steno keyboard. Unlike other CAT systems, it does not have a text entry window; it's a pure conduit straight to the operating system. Anything you can do with a qwerty keyboard can be done with Plover, and you can use it with the word processor or text editor of your choice.
# Plover runs on Windows, Mac, and Linux.
# Its length-based buffer, as opposed to the time-based buffer used in most CAT software, ensures instant delivery of text with no buffer flushing or time delay.
# Its dictionary is text-based, so you can search through and edit it using any text editor. Updating the dictionary from the writer is smooth and seamless.
# And, of course, its biggest feature: It's 100% free and open source. You can download it, keep it on a USB key, and have it to hand as a backup in case something happens to your CAT software. You can distribute it to interested friends and potential steno students. You can run it on as many computers as you like, with absolutely no restrictions. And, if you know how to program in Python, you can modify it and change it to your heart's delight.
<youtube>eSU5JlVXT1A</youtube>
=== Can I use my Luminex/Stentura/Lightspeed/other stenotype machine? ===
Yes! See the [[Supported Hardware#Stenotype Machines|stenotype machine section in supported hardware]] for machines that have been confirmed to work with Plover, and any specific setup instructions you may need to follow.
=== Can I use my dictionaries from another program? ===
Yes, Plover supports the RTF/CRE format, which is exportable from just about any CAT software.
[[Category:Stenography]]
f6b15ab98e565f35d96ad97934ff46233a4e3ae9
User:FredericMcRae39
2
1583
2435
2024-11-12T20:36:23Z
FredericMcRae39
1697
Created page with "Tire compound significantly impacts wintertime tire efficiency, influencing traction, grip, and dealing with on icy roadways. Softer substances enhance adaptability, enabling tires to adhere much better to road surfaces, boosting safety and security and command throughout rough wintertime states. For vehicle drivers in Latvia, recognizing the job of tire arrangement is actually important for deciding on the appropriate wintertime tires to browse daunting climate successf..."
wikitext
text/x-wiki
Tire compound significantly impacts wintertime tire efficiency, influencing traction, grip, and dealing with on icy roadways. Softer substances enhance adaptability, enabling tires to adhere much better to road surfaces, boosting safety and security and command throughout rough wintertime states. For vehicle drivers in Latvia, recognizing the job of tire arrangement is actually important for deciding on the appropriate wintertime tires to browse daunting climate successfully.<br><br>Also visit my page [https://www.sendspace.com/file/fllabv Learn More]
2e0ebd844c4aeaa542b4b1027a3ddaafffea786f
User:BevBorchgrevink
2
1584
2436
2024-11-13T19:55:10Z
BevBorchgrevink
1698
Created page with "For those taking care of erectile difficulties, erection problems medication like erection supplements, construction gel, Vidalista 80, blu medic, tadalafil, and sildenafil supplies dependable possibilities. Well-regarded therapies, featuring Kamagra and Kamagra gel, job to sustain firmer, longer-lasting erections and enrich overall functionality. These choices work at marketing stronger blood stream flow and repairing confidence. With unique, secure ED options, men can..."
wikitext
text/x-wiki
For those taking care of erectile difficulties, erection problems medication like erection supplements, construction gel, Vidalista 80, blu medic, tadalafil, and sildenafil supplies dependable possibilities. Well-regarded therapies, featuring Kamagra and Kamagra gel, job to sustain firmer, longer-lasting erections and enrich overall functionality. These choices work at marketing stronger blood stream flow and repairing confidence. With unique, secure ED options, men can easily currently appreciate a fuller, even more gratifying close live and enhanced confidence.<br><br>My website; [https://it.quora.com/Come-si-cura-la-disfunzione-erettile/answer/Justus-Richards-1 Available Here]
cda442055e7b3583c79e38436fbc70d53dd2d380
File:Steno keys on QWERTY keyboard, with finger positions.png
6
1585
2437
2024-11-18T00:01:02Z
Waldyrious
1699
Based on [[:File:Steno keys on QWERTY keyboard by Jen.png]]. Originally shared [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png on Discord] (dead link, [https://web.archive.org/web/20220426195900/https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png archived]).
wikitext
text/x-wiki
== Summary ==
Based on [[:File:Steno keys on QWERTY keyboard by Jen.png]]. Originally shared [https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png on Discord] (dead link, [https://web.archive.org/web/20220426195900/https://media.discordapp.net/attachments/136953809409802240/908852177873817620/Keyboard_Mapping_2.png archived]).
43142870bec0841437611a0d5995dd952a70f7c0
Arpeggiating
0
1586
2439
2024-11-18T00:46:32Z
Waldyrious
1699
Redirected page to [[Glossary#Arpeggiate]]
wikitext
text/x-wiki
#REDIRECT [[Glossary#Arpeggiate]]
8f705cb3d3be17425449629d7e688e7e997b624b
User:KristopherX36
2
1587
2440
2024-11-27T23:00:23Z
KristopherX36
1702
Created page with "Local hardware suppliers in Beaumont supply customized service with a large inventory of tools, home remodeling products, and exterior devices. From coating and horticulture materials to power tools and fasteners, these outlets come one-stop look for all [https://xavierprado.weebly.com/home/when-to-upgrade-your-electrical-supplies-in-beaumont-tx-a-homeowners-checklist Get Idea About Your Bit] fixing and restoration demands."
wikitext
text/x-wiki
Local hardware suppliers in Beaumont supply customized service with a large inventory of tools, home remodeling products, and exterior devices. From coating and horticulture materials to power tools and fasteners, these outlets come one-stop look for all [https://xavierprado.weebly.com/home/when-to-upgrade-your-electrical-supplies-in-beaumont-tx-a-homeowners-checklist Get Idea About Your Bit] fixing and restoration demands.
66775fb83abe1d1ac634691b52e8020d784e2ca3
User:SteveCrowther45
2
1588
2441
2024-11-29T00:39:40Z
SteveCrowther45
1704
Created page with "Addiction treatment in NJ offers personalized recovery programs modified to individual requirements. With a series of therapies and support services, treatment centers concentrate on dealing with the origin of addiction. Expert guidance aids individuals fix their lifestyles and [http://www.larsaluarna.se/index.php/User:ChiLindell420 See Details] work in the direction of lasting soberness in a supporting atmosphere, using both inpatient and outpatient possibilities for a..."
wikitext
text/x-wiki
Addiction treatment in NJ offers personalized recovery programs modified to individual requirements. With a series of therapies and support services, treatment centers concentrate on dealing with the origin of addiction. Expert guidance aids individuals fix their lifestyles and [http://www.larsaluarna.se/index.php/User:ChiLindell420 See Details] work in the direction of lasting soberness in a supporting atmosphere, using both inpatient and outpatient possibilities for adaptability.<br><br>Also visit my webpage: [https://search.grainger.illinois.edu/searchaidlog3/sourcelognew.asp?ID=782151&goog--https://nextwindnj.com/ See Details]
e56629359f8002e5ba70a927c6a612f0f8f8a582
User:Sima97316650229
2
1589
2442
2024-12-07T19:30:10Z
Sima97316650229
1706
Created page with "Improvements in components, like using perovskite designs, have improved the effectiveness of sun doors, pushing sale costs beyond standard silicon modern technologies. This means you can easily assume better power result also from smaller sized setups.<br><br>My web-site ... [https://airsoftc3.com/user/110207/bridgerdfcobb Get Idea About Your Bit]"
wikitext
text/x-wiki
Improvements in components, like using perovskite designs, have improved the effectiveness of sun doors, pushing sale costs beyond standard silicon modern technologies. This means you can easily assume better power result also from smaller sized setups.<br><br>My web-site ... [https://airsoftc3.com/user/110207/bridgerdfcobb Get Idea About Your Bit]
15bbc5ffb8c45fc5b681e59f8f05aa76217bc7e0
User:HershelGoris222
2
1590
2443
2024-12-08T09:36:01Z
HershelGoris222
1707
Created page with "Internet software application outlets play a notable duty fit your obtaining selections. Through delivering a network for software program merchants to showcase their items, these retail stores allow you to review and examine different options. Because of this, you can easily make additional educated decisions when deciding on software that satisfies your necessities, no matter if you're a specialist or a hobbyist.<br><br>my site; [https://mucaz.weebly.com/home/how-onlin..."
wikitext
text/x-wiki
Internet software application outlets play a notable duty fit your obtaining selections. Through delivering a network for software program merchants to showcase their items, these retail stores allow you to review and examine different options. Because of this, you can easily make additional educated decisions when deciding on software that satisfies your necessities, no matter if you're a specialist or a hobbyist.<br><br>my site; [https://mucaz.weebly.com/home/how-online-software-stores-are-changing-the-software-licensing-game View Our Editors Post]
da8e29f619b6bcfef19900f43cde3526f3add8d8
User:BonnieMerrell8
2
1591
2444
2024-12-08T11:21:35Z
BonnieMerrell8
1708
Created page with "Through taking advantage of your pyrography skills and using custom services, you'll be able to increase your earning possible rapidly and established on your own apart from competitors in the craft market. As you grow your business, you can continue to refine your offerings and rates approach to maximize your earnings.<br><br>Take a look at my site ... [http://www.furaffinity.net/user/roryeeaton View Source]"
wikitext
text/x-wiki
Through taking advantage of your pyrography skills and using custom services, you'll be able to increase your earning possible rapidly and established on your own apart from competitors in the craft market. As you grow your business, you can continue to refine your offerings and rates approach to maximize your earnings.<br><br>Take a look at my site ... [http://www.furaffinity.net/user/roryeeaton View Source]
9dfd6bc841f9cf8b6aba7d726c48391a42d4087a
User:RashadLeija
2
1592
2445
2024-12-08T11:29:30Z
RashadLeija
1709
Created page with "Through utilize your pyrography skills and providing personalized services, you'll have the ability to increase your gaining prospective promptly and established on your own besides rivals in the craft market. As you expand your business, you can continue to fine-tune your offerings and prices technique to optimize your profits.<br><br>Look into my web site; [http://sashaeoneal.minitokyo.net/ Read My Reviews Here]"
wikitext
text/x-wiki
Through utilize your pyrography skills and providing personalized services, you'll have the ability to increase your gaining prospective promptly and established on your own besides rivals in the craft market. As you expand your business, you can continue to fine-tune your offerings and prices technique to optimize your profits.<br><br>Look into my web site; [http://sashaeoneal.minitokyo.net/ Read My Reviews Here]
24da5aa04122f6daa4d4352cf4ce7dfe90674e43
User:CathleenThwaites
2
1593
2446
2024-12-08T15:17:53Z
CathleenThwaites
1711
Created page with "Medical trials have illustrated that the combo of these all-natural substances in body weight control capsules can bring about significant declines in body system weight and fatty tissue mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't just yet another fleeting trend; they're started on solid analysis and proof.<br><br>Feel free to visit my page ... [https://dmoj.ca/user/camilladffleming Read More From Here]"
wikitext
text/x-wiki
Medical trials have illustrated that the combo of these all-natural substances in body weight control capsules can bring about significant declines in body system weight and fatty tissue mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't just yet another fleeting trend; they're started on solid analysis and proof.<br><br>Feel free to visit my page ... [https://dmoj.ca/user/camilladffleming Read More From Here]
f94dd49d7de9c80e1a2e9a1e4483005bd88a8ab8
User:DesireeCoughlin
2
1594
2447
2024-12-08T15:38:19Z
DesireeCoughlin
1713
Created page with "Achieving weight management requires devotion, well balanced health and nutrition, and normal exercise. Alviona weight reduction pills can aid hold your experience by advertising natural metabolic rate and general wellness. Along with very carefully decided on all-natural components, Alviona capsules function to improve your energy and [https://menwiki.men/wiki/User:JarrodManchee3 Read My Post Here] balance, creating it easier to stay on track and achieve your fat loss..."
wikitext
text/x-wiki
Achieving weight management requires devotion, well balanced health and nutrition, and normal exercise. Alviona weight reduction pills can aid hold your experience by advertising natural metabolic rate and general wellness. Along with very carefully decided on all-natural components, Alviona capsules function to improve your energy and [https://menwiki.men/wiki/User:JarrodManchee3 Read My Post Here] balance, creating it easier to stay on track and achieve your fat loss targets.<br><br>Also visit my webpage :: [https://www.shadertoy.com/user/AnndfNoble Read My Post Here]
6c5af6dc5ed2ab5a4d532d45ab21a2c9c0b75a7a
User:DominiqueGhb
2
1595
2448
2024-12-08T15:47:08Z
DominiqueGhb
1715
Created page with "Purchasing curtains and shades online can be actually a soft and rewarding process if you make the effort to consider your requirements and preferences. By precisely assessing your windows, understanding cloth possibilities, deciding on the appropriate design, [https://timeoftheworld.date/wiki/Things_To_Take_Into_Consideration_Before_Buying_Curtains_And_Shades_Online visit this link] and recognizing the components that are very most necessary to you, you'll be properly..."
wikitext
text/x-wiki
Purchasing curtains and shades online can be actually a soft and rewarding process if you make the effort to consider your requirements and preferences. By precisely assessing your windows, understanding cloth possibilities, deciding on the appropriate design, [https://timeoftheworld.date/wiki/Things_To_Take_Into_Consideration_Before_Buying_Curtains_And_Shades_Online visit this link] and recognizing the components that are very most necessary to you, you'll be properly on your way to deciding on the best home window treatments for your home. Do not fail to remember to make the most of online guides and customer testimonials to help you create an updated selection. Whether you're trying to find added privacy, much better light management, or an elegant brand new look for your home windows, with the right understanding, you'll manage to buy that you'll be actually pleased with for several years to happen.<br><br>Look into my blog - [https://fameafric.blogspot.com/2024/12/how-to-create-stylish-home-with.html Visit This Link]
116aa890bb16a0065c7b1f668302ccc8d35c8873
User:AlfieBentley9
2
1596
2449
2024-12-08T16:07:16Z
AlfieBentley9
1716
Created page with "Airline company purchase satisfaction is actually efficient, as providers have the systems in location to manage large-scale purchases with speed and productivity. By depending on an established airline company business solutions London company, [https://wiki.solsombra-abdl.com/index.php/User:MaggiePrentice Read My Post Here] airlines can easily focus their information on other critical elements of their business.<br><br>My site; [https://www.onfeetnation.com/video/exac..."
wikitext
text/x-wiki
Airline company purchase satisfaction is actually efficient, as providers have the systems in location to manage large-scale purchases with speed and productivity. By depending on an established airline company business solutions London company, [https://wiki.solsombra-abdl.com/index.php/User:MaggiePrentice Read My Post Here] airlines can easily focus their information on other critical elements of their business.<br><br>My site; [https://www.onfeetnation.com/video/exactly-how-airline-facility-kit-distributors-add-to Read My Post Here]
99e8d2998ddceccd51182bf6364387db69d35a61
User:ROXSherryl
2
1597
2450
2024-12-08T16:22:37Z
ROXSherryl
1719
Created page with "Clinical tests have shown that the combo of these natural ingredients in weight control pills can easily lead to substantial reductions in body system weight and [https://dokuwiki.stream/wiki/What_Generates_Leanix_Fruit_Weight_Management_Pills_Stick_Out_In_The_Market Check Our Editor Note] fat mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't only yet another short lived trend; they're established on strong analysis..."
wikitext
text/x-wiki
Clinical tests have shown that the combo of these natural ingredients in weight control pills can easily lead to substantial reductions in body system weight and [https://dokuwiki.stream/wiki/What_Generates_Leanix_Fruit_Weight_Management_Pills_Stick_Out_In_The_Market Check Our Editor Note] fat mass in time. This medical support provides you confidence that Leanix Fruit Weight Loss Capsules aren't only yet another short lived trend; they're established on strong analysis and documentation.<br><br>Here is my page ... [https://de.quora.com/Welche-Vorteile-hat-%C3%9Cbergewicht/answer/Deegan-Wagner Check Our Editor Note]
80cb9cc1abb076266af25f12bc7756a16c38108a
User:LashundaGholson
2
1598
2451
2024-12-08T16:34:47Z
LashundaGholson
1722
Created page with "Achieving weight-loss needs commitment, balanced nutrition, and frequent physical exercise. Alviona weight reduction capsules can assist hold your journey by marketing all-natural metabolic process and general welfare. Along with carefully selected all-natural substances, Alviona capsules function to enrich your energy and harmony, making it simpler to remain on keep track of and achieve your weight management goals.<br><br>Feel free to surf to my webpage: [https://revie..."
wikitext
text/x-wiki
Achieving weight-loss needs commitment, balanced nutrition, and frequent physical exercise. Alviona weight reduction capsules can assist hold your journey by marketing all-natural metabolic process and general welfare. Along with carefully selected all-natural substances, Alviona capsules function to enrich your energy and harmony, making it simpler to remain on keep track of and achieve your weight management goals.<br><br>Feel free to surf to my webpage: [https://reviewsandco.blogspot.com/2024/12/wie-zu-sicher-verwenden.html Read My Post Here]
f9a2417945ed46d12f76dbc3c94957a2cbf86a4b
User:EugenioRosales6
2
1599
2452
2024-12-08T16:44:35Z
EugenioRosales6
1724
Created page with "Buying drapes and shades online can be a hassle-free and gratifying process if you put in the time to consider your demands and choices. Through precisely assessing your windows, understanding textile possibilities, opting for the best type, and knowing the functions that are very most vital to you, you'll be actually well on your means to choosing the excellent window procedures for your home. Don't neglect to take conveniences of on the internet manuals and client asse..."
wikitext
text/x-wiki
Buying drapes and shades online can be a hassle-free and gratifying process if you put in the time to consider your demands and choices. Through precisely assessing your windows, understanding textile possibilities, opting for the best type, and knowing the functions that are very most vital to you, you'll be actually well on your means to choosing the excellent window procedures for your home. Don't neglect to take conveniences of on the internet manuals and client assessments to assist you create an educated selection. Whether you are actually trying to find incorporated privacy, far better mild control, or a fashionable makeover for your home windows, with the correct know-how, you'll be able to purchase that you'll [https://www.tumblr.com/bramblewax/769181886641815552/how-to-buy-shades-and-curtains-online-that-fit Read More Here] than happy with for a long times ahead.
774ceb8ea02c73f4fd5e5436e630e2c6e36dfe2f
User:AlberthaB40
2
1600
2453
2024-12-08T16:49:34Z
AlberthaB40
1723
Created page with "Professional tests have shown that the mixture of these organic components in weight control pills can lead to considerable decreases in body weight and fatty tissue mass over time. This scientific backing gives you self-confidence that Leanix Fruit Weight Loss Capsules may not be merely another fleeting trend; they're founded on solid investigation and [https://wavedream.wiki/index.php/Exactly_What_Creates_Leanix_Fruit_Effective_Weight_Loss_Pills_Stick_Out_In_The_Marke..."
wikitext
text/x-wiki
Professional tests have shown that the mixture of these organic components in weight control pills can lead to considerable decreases in body weight and fatty tissue mass over time. This scientific backing gives you self-confidence that Leanix Fruit Weight Loss Capsules may not be merely another fleeting trend; they're founded on solid investigation and [https://wavedream.wiki/index.php/Exactly_What_Creates_Leanix_Fruit_Effective_Weight_Loss_Pills_Stick_Out_In_The_Market Check Our Top Pick] documentation.<br><br>Here is my website: [https://www.tumblr.com/carynokey/769276753684447232/oben-wirkstoffe-in-leanix-frucht Check Our Top Pick]
9a123def66a8bb555b696c6121b9920d7e93ba40
User:WaldoTrs5696732
2
1601
2454
2024-12-09T05:04:00Z
WaldoTrs5696732
1727
Created page with "For [https://wiki.outhistory.org/wiki/User:Sam08830722400 Learn More] pupils finding top quality college essays, cheap essays, or fast essays, a professional writing service may be a game-changer. With specialized services such as assignment writing, essay help, and dissertation help, clients obtain custom papers tailored to their requirements. These writing services work with skilled writers to provide first-class content, guaranteeing trainees master their learning an..."
wikitext
text/x-wiki
For [https://wiki.outhistory.org/wiki/User:Sam08830722400 Learn More] pupils finding top quality college essays, cheap essays, or fast essays, a professional writing service may be a game-changer. With specialized services such as assignment writing, essay help, and dissertation help, clients obtain custom papers tailored to their requirements. These writing services work with skilled writers to provide first-class content, guaranteeing trainees master their learning and academic quests.<br><br>Look at my blog; [https://www.instapaper.com/read/1734741788 Learn More]
beac6cca574256a7b6550c34bade59c38ffb43b7
User:MohammedCraddock
2
1602
2455
2024-12-09T05:10:09Z
MohammedCraddock
1728
Created page with "A dependable writing service for essay writing, assignment writing, and custom papers uses expert support to students around numerous academic fields. Whether you require essay help, dissertation help, or even research papers, professional writers make certain well-timed, high-quality outcomes. Writing experts assure plagiarism-free content that aligns with academic specifications, making it less complicated for pupils to attain excellence in their learning.<br><br>Here..."
wikitext
text/x-wiki
A dependable writing service for essay writing, assignment writing, and custom papers uses expert support to students around numerous academic fields. Whether you require essay help, dissertation help, or even research papers, professional writers make certain well-timed, high-quality outcomes. Writing experts assure plagiarism-free content that aligns with academic specifications, making it less complicated for pupils to attain excellence in their learning.<br><br>Here is my web blog :: [https://www.pinterest.com/pin/755690012512912640/ Going Here]
b54bb2943efd13be62c3c07fb22bd0ddd8e0633a
User:CheriRandell
2
1603
2456
2024-12-10T14:13:17Z
CheriRandell
1735
Created page with "By being positive and notified, you may select weight-loss capsules that line up with your health objectives. Keep in mind, the most ideal strategy to body weight management commonly entails a combo of diet plan, physical exercise, and way of living improvements, instead of relying exclusively on enhance.<br><br>Feel free to visit my web site: [http://depositfiles.com/files/s7r2qe775 Read This Post Here]"
wikitext
text/x-wiki
By being positive and notified, you may select weight-loss capsules that line up with your health objectives. Keep in mind, the most ideal strategy to body weight management commonly entails a combo of diet plan, physical exercise, and way of living improvements, instead of relying exclusively on enhance.<br><br>Feel free to visit my web site: [http://depositfiles.com/files/s7r2qe775 Read This Post Here]
8f03251b3cac041c0b44c3261a3d70da83a2a426
User:ShastaMichaels
2
1604
2457
2024-12-10T17:08:45Z
ShastaMichaels
1739
Created page with "Consuming fat burning capsules like S-Extra Capsules can substantially reinforce your fitness goals. These natural, vegan pills are formulated to increase rate of metabolism and market weight loss effectively. By including them in to your daily routine, you can easily improve your body system's natural ability to shed excess weight, creating it easier to remain toned and well-balanced.<br><br>My page - [https://movieo.me/users/allissondfrichard-jplddm Available Here]"
wikitext
text/x-wiki
Consuming fat burning capsules like S-Extra Capsules can substantially reinforce your fitness goals. These natural, vegan pills are formulated to increase rate of metabolism and market weight loss effectively. By including them in to your daily routine, you can easily improve your body system's natural ability to shed excess weight, creating it easier to remain toned and well-balanced.<br><br>My page - [https://movieo.me/users/allissondfrichard-jplddm Available Here]
64785df0d9d9d7c3f4e9d80a50c4ceac45fbc66b
User:VilmaKeaton5
2
1605
2458
2024-12-10T17:28:04Z
VilmaKeaton5
1740
Created page with "Taking in fat burning pills like S-Extra Capsules may considerably reinforce your wellness and health and fitness goals. These organic, vegetarian capsules are actually formulated to improve metabolic process and market weight reduction successfully. By including them in to your everyday schedule, you can boost your body system's organic ability to shed excess weight, making it easier to stay in good condition and healthy.<br><br>Here is my webpage ... [https://www.dropb..."
wikitext
text/x-wiki
Taking in fat burning pills like S-Extra Capsules may considerably reinforce your wellness and health and fitness goals. These organic, vegetarian capsules are actually formulated to improve metabolic process and market weight reduction successfully. By including them in to your everyday schedule, you can boost your body system's organic ability to shed excess weight, making it easier to stay in good condition and healthy.<br><br>Here is my webpage ... [https://www.dropbox.com/scl/fi/ah81k7yucorb3gz1697x1/S-Extra-kapseln-1.pdf?rlkey=qtueq1miesvx93ovophk2kzx1&st=rrjcqeds&dl=0 Discover More Here]
ae72e23270592c2b9a682616dfcf713aa7bfa664
User:Phoebe89P0
2
1606
2459
2024-12-10T20:14:31Z
Phoebe89P0
1741
Created page with "In a well-being pills examination, these ingredients regularly present appealing cause lowering tiredness and enhancing energy. By deciding on Wellfeel Capsules, you're not just resolving tiredness; you're acquiring a formula that sustains your body's all-natural electricity development and resilience versus everyday stress factors.<br><br>my website: [http://bioimagingcore.be/q2a/user/dresspig8 Article Source]"
wikitext
text/x-wiki
In a well-being pills examination, these ingredients regularly present appealing cause lowering tiredness and enhancing energy. By deciding on Wellfeel Capsules, you're not just resolving tiredness; you're acquiring a formula that sustains your body's all-natural electricity development and resilience versus everyday stress factors.<br><br>my website: [http://bioimagingcore.be/q2a/user/dresspig8 Article Source]
17deb2f51f6579d7fc7e05402259cf608d2c825b
User:RudyPerdue1
2
1607
2460
2024-12-11T05:58:42Z
RudyPerdue1
1745
Created page with "The mobility of pills implies you can easily take all of them anywhere. Whether you're at work, traveling, or in the home, they suit seamlessly right into your routine. The ease enables you to remain steady, which is key for accomplishing your weight management goals. Eventually, weight management capsules can be actually a game-changer, offering a practical technique to managing your body weight without mind-boggling your life.<br><br>my web-site: [https://musclelove.co..."
wikitext
text/x-wiki
The mobility of pills implies you can easily take all of them anywhere. Whether you're at work, traveling, or in the home, they suit seamlessly right into your routine. The ease enables you to remain steady, which is key for accomplishing your weight management goals. Eventually, weight management capsules can be actually a game-changer, offering a practical technique to managing your body weight without mind-boggling your life.<br><br>my web-site: [https://musclelove.com/profile/MaradfHanson Get More Info]
5e7d747d200b1347a219089077e933d749ce4613
User:PatrickMacknight
2
1608
2461
2024-12-11T06:36:28Z
PatrickMacknight
1746
Created page with "The portability of pills indicates you can take all of them anywhere. Whether you're at job, traveling, or in your home, they fit effortlessly in to your schedule. The convenience enables you to keep constant, which is key for obtaining your fat loss objectives. Eventually, effective weight loss pills may be a game-changer, delivering a functional approach to handling your body weight without difficult your regular lifestyle.<br><br>My blog post; [https://ourdoings.com/t..."
wikitext
text/x-wiki
The portability of pills indicates you can take all of them anywhere. Whether you're at job, traveling, or in your home, they fit effortlessly in to your schedule. The convenience enables you to keep constant, which is key for obtaining your fat loss objectives. Eventually, effective weight loss pills may be a game-changer, delivering a functional approach to handling your body weight without difficult your regular lifestyle.<br><br>My blog post; [https://ourdoings.com/terencearnold/2024-12-08 e828684]
15e1b067b6b4a8b6a5c19c5165ab95745e3b9ba9
User:SabineMerriam
2
1609
2462
2024-12-12T07:53:03Z
SabineMerriam
1749
Created page with "Pick devices that enhances your beauty parlor's layout while providing optimum functions. A lot of Dallas vendors offer modern-day and adjustable choices for premier barber and hair salon devices, enabling you to produce a logical and elegant environment.<br><br>Here is my web-site - [https://eileenleavitt.weebly.com/home/major-factors-to-associate-with-a-regional-salon-instruments-provider-in-dallas Available Here]"
wikitext
text/x-wiki
Pick devices that enhances your beauty parlor's layout while providing optimum functions. A lot of Dallas vendors offer modern-day and adjustable choices for premier barber and hair salon devices, enabling you to produce a logical and elegant environment.<br><br>Here is my web-site - [https://eileenleavitt.weebly.com/home/major-factors-to-associate-with-a-regional-salon-instruments-provider-in-dallas Available Here]
92d8a80df08b05b0c60754aac5fb43186a58a568
User:AnalisaP96
2
1610
2463
2024-12-12T08:03:20Z
AnalisaP96
1751
Created page with "Pick equipment that suits your beauty salon's layout while delivering optimum performance. Several Dallas distributors deliver modern and customizable possibilities for excellent barber and [https://munidigital.iie.cl/wiki/index.php?title=Usuario:TrudyGoodson Clicking Here] beauty salon devices, allowing you to develop a natural and classy environment.<br><br>my website [https://cullencrawford.notion.site/Benefits-of-Partnering-With-a-Reputable-Barber-Tools-Supplier-in-..."
wikitext
text/x-wiki
Pick equipment that suits your beauty salon's layout while delivering optimum performance. Several Dallas distributors deliver modern and customizable possibilities for excellent barber and [https://munidigital.iie.cl/wiki/index.php?title=Usuario:TrudyGoodson Clicking Here] beauty salon devices, allowing you to develop a natural and classy environment.<br><br>my website [https://cullencrawford.notion.site/Benefits-of-Partnering-With-a-Reputable-Barber-Tools-Supplier-in-Dallas-Texas-158cda2cf8a68022b881e2ac2e81d285?pvs=73 Clicking Here]
bcc34cd6d9512a7d3254e2867df546776ea67305
User:KalaHoare29
2
1611
2464
2024-12-12T09:54:11Z
KalaHoare29
1752
Created page with "Premier Health Internal Medicine & Pediatrics in Westland, Michigan uses a series of medical services, consisting of primary care, pediatrics, and internal medicine. Whether you need a primary care doctor, top doctor, or even pediatrician, their devoted team makes certain thorough maintain your entire household. With urgent care and walk-in clinic alternatives available, [https://shiapedia.1god.org/index.php/User:ElenaWelsh6 See Our Website] they provide practical, qual..."
wikitext
text/x-wiki
Premier Health Internal Medicine & Pediatrics in Westland, Michigan uses a series of medical services, consisting of primary care, pediatrics, and internal medicine. Whether you need a primary care doctor, top doctor, or even pediatrician, their devoted team makes certain thorough maintain your entire household. With urgent care and walk-in clinic alternatives available, [https://shiapedia.1god.org/index.php/User:ElenaWelsh6 See Our Website] they provide practical, quality hospital for any ages.<br><br>My webpage; [https://www.exoltech.net/blogs/183725/Exactly-how-to-Opt-For-the-Ideal-Primary-Care-Medical See Our Website]
1deb66339c823a044eb3b9df4da6d313284ae550
User:HeatherN02
2
1612
2465
2024-12-12T09:54:22Z
HeatherN02
1753
Created page with "At Premier Health Internal Medicine & Pediatrics in Westland, Michigan, patients of all ages receive excellent care from skillful primary care physicians. This facility delivers pediatrics, internal medicine, and primary care services. Whether you need a PCP, [https://fakenews.win/wiki/User:MichelineTrower Discover More] urgent care, or even a seasoned doctor, they concentrate on your lasting health along with individualized care and focus for your family members's need..."
wikitext
text/x-wiki
At Premier Health Internal Medicine & Pediatrics in Westland, Michigan, patients of all ages receive excellent care from skillful primary care physicians. This facility delivers pediatrics, internal medicine, and primary care services. Whether you need a PCP, [https://fakenews.win/wiki/User:MichelineTrower Discover More] urgent care, or even a seasoned doctor, they concentrate on your lasting health along with individualized care and focus for your family members's needs.<br><br>Also visit my web-site [https://www.onfeetnation.com/profiles/blogs/overview-for-choosing-the-right-primary-care-clinic-in-westland Discover More]
18fa18e69b962db490b441f2dc0bbbc1af75849c
User:ShennaHartfield
2
1613
2466
2024-12-12T10:08:52Z
ShennaHartfield
1754
Created page with "At Premier Health Internal Medicine & Pediatrics in Westland, MI, patients of every ages acquire excellent care from skilled primary care medical professionals. This center uses pediatrics, internal medicine, and primary care services. Whether you require a PCP, urgent care, or a skilled doctor, they concentrate on your lasting wellness with customized care and interest for your family's requirements.<br><br>Feel free to surf to my page: [https://www.tumblr.com/whenyouwo..."
wikitext
text/x-wiki
At Premier Health Internal Medicine & Pediatrics in Westland, MI, patients of every ages acquire excellent care from skilled primary care medical professionals. This center uses pediatrics, internal medicine, and primary care services. Whether you require a PCP, urgent care, or a skilled doctor, they concentrate on your lasting wellness with customized care and interest for your family's requirements.<br><br>Feel free to surf to my page: [https://www.tumblr.com/whenyouworkatflaconi/769469255825620992/common-health-care-services-offered-through?source=share Learn More]
eb6ac07408482f3cef5630be282cc37e3da70080
User:KerriI29317063
2
1614
2467
2024-12-12T10:56:51Z
KerriI29317063
1756
Created page with "If you're trying to find a cake shop in West London that offers optimum bespoke cakes, look no [https://www.storeboard.com/skyerogers Read More Here]. Angies Tiny Treats is actually renowned as the greatest cake shop West London, concentrating on custom cakes tailored to your needs. Whether it is actually for a birthday party or a wedding, Angies Tiny Treats produces sensational, tasty cakes to make every affair remarkable."
wikitext
text/x-wiki
If you're trying to find a cake shop in West London that offers optimum bespoke cakes, look no [https://www.storeboard.com/skyerogers Read More Here]. Angies Tiny Treats is actually renowned as the greatest cake shop West London, concentrating on custom cakes tailored to your needs. Whether it is actually for a birthday party or a wedding, Angies Tiny Treats produces sensational, tasty cakes to make every affair remarkable.
e401e349b6fc1a254d13ee27a45f009e035f60f7
User:DarrenWiegand0
2
1615
2468
2024-12-12T11:00:23Z
DarrenWiegand0
1757
Created page with "If you're seeking a cake shop in West London that provides the finest bespoke cakes, look no better. Angies Tiny Treats is renowned as the best cake shop West London, focusing on custom cakes tailored to your necessities. Whether it is actually for a special day or even a wedding ceremony, [https://valetinowiki.racing/wiki/Exactly_Why_Custom-Made_Cakes_From_A_Tailored_Cake_Shop_In_West_London_Are_Worth_Every_Cent Additional Resources] Angies Tiny Treats creates impressi..."
wikitext
text/x-wiki
If you're seeking a cake shop in West London that provides the finest bespoke cakes, look no better. Angies Tiny Treats is renowned as the best cake shop West London, focusing on custom cakes tailored to your necessities. Whether it is actually for a special day or even a wedding ceremony, [https://valetinowiki.racing/wiki/Exactly_Why_Custom-Made_Cakes_From_A_Tailored_Cake_Shop_In_West_London_Are_Worth_Every_Cent Additional Resources] Angies Tiny Treats creates impressive, tasty cakes to make every affair momentous.<br><br>my homepage ... [https://vnseo.edu.vn/members/steelbra5.80804.html Additional Resources]
2d7512890f7b3db5e5a1f9756e395abdf1d934b7
User:IrwinGagnon33
2
1616
2469
2024-12-14T07:22:32Z
IrwinGagnon33
1760
Created page with "Modern leaners provide a variety of environments and attachments, permitting you to individualize your grooming schedule. You may simply achieve the ideal duration and form that fits your face and type. Additionally, the cleaning process itself has actually progressed into an enjoyable practice-- one that can easily boost your mornings and improve your peace of mind. Embracing this advancement suggests you're certainly not only staying on [https://modisfilmcollectibles.b..."
wikitext
text/x-wiki
Modern leaners provide a variety of environments and attachments, permitting you to individualize your grooming schedule. You may simply achieve the ideal duration and form that fits your face and type. Additionally, the cleaning process itself has actually progressed into an enjoyable practice-- one that can easily boost your mornings and improve your peace of mind. Embracing this advancement suggests you're certainly not only staying on [https://modisfilmcollectibles.blogspot.com/2024/12/conveniences-of-using-normal-self-care.html Check Our Top Pick] of the trends; you're also buying on your own.
332d660435dc1a49228b8377584c1ea7bf1eeb34
User:TawnyaParkhurst
2
1617
2470
2024-12-14T07:37:35Z
TawnyaParkhurst
1762
Created page with "Present day leaners provide numerous environments and add-ons, enabling you to personalize your pet grooming program. You can simply attain the ideal length and design that satisfies your face and style. Additionally, the cleaning process on its own has evolved right into a satisfying practice-- one that can easily elevate your mornings and [http://kousokuwiki.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:BarbRundle5674 Learn More] increase your confidence. Accepting this develo..."
wikitext
text/x-wiki
Present day leaners provide numerous environments and add-ons, enabling you to personalize your pet grooming program. You can simply attain the ideal length and design that satisfies your face and style. Additionally, the cleaning process on its own has evolved right into a satisfying practice-- one that can easily elevate your mornings and [http://kousokuwiki.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:BarbRundle5674 Learn More] increase your confidence. Accepting this development implies you're certainly not just always keeping up with the trends; you're also purchasing on your own.<br><br>My web blog [https://www.fundable.com/marcus-kelley Learn More]
e44f7b5ad9b3011558f1d74bc636c95ead806b84
User:Ralf56584352
2
1618
2471
2024-12-14T07:39:10Z
Ralf56584352
1764
Created page with "Contemporary trimmers supply various settings and accessories, allowing you to personalize your grooming regimen. You may effortlessly attain the ideal duration and [https://clashofcryptos.trade/wiki/User:PorfirioSisley Visit Here] design that matches your skin and style. Furthermore, the cleaning method on its own has actually grown in to a pleasurable routine-- one that can easily increase your early mornings and enhance your assurance. Welcoming this progression indi..."
wikitext
text/x-wiki
Contemporary trimmers supply various settings and accessories, allowing you to personalize your grooming regimen. You may effortlessly attain the ideal duration and [https://clashofcryptos.trade/wiki/User:PorfirioSisley Visit Here] design that matches your skin and style. Furthermore, the cleaning method on its own has actually grown in to a pleasurable routine-- one that can easily increase your early mornings and enhance your assurance. Welcoming this progression indicates you're certainly not just always keeping up with the trends; you're additionally purchasing your own self.<br><br>Feel free to surf to my blog post; [https://lulaellis.hashnode.dev/reasons-that-every-male-should-buy-a-good-grooming-set Visit Here]
ea6253d31511168d745aebf95df1ae26ced5b741
User:TerriMurakami0
2
1619
2472
2024-12-14T07:40:16Z
TerriMurakami0
1761
Created page with "Consuming organic gluten free granola is actually a great tasting way to take pleasure in a healthy snack food or food. Nola's granola, on call in different granola flavours, [https://twwrando.com/index.php/User:ShellieOHara Visit Website] consists of possibilities like coconut almond granola and granola with dark chocolate. Made in small sets, it is actually a non-GMO granola excellent for those seeking balanced snacks, such as granola with cinnamon or golden goji berr..."
wikitext
text/x-wiki
Consuming organic gluten free granola is actually a great tasting way to take pleasure in a healthy snack food or food. Nola's granola, on call in different granola flavours, [https://twwrando.com/index.php/User:ShellieOHara Visit Website] consists of possibilities like coconut almond granola and granola with dark chocolate. Made in small sets, it is actually a non-GMO granola excellent for those seeking balanced snacks, such as granola with cinnamon or golden goji berries.<br><br>Feel free to surf to my web site - [https://telegra.ph/Great-Tasting-Organic-Gluten-Free-Granola-For-Every-Treat-12-10 Visit Website]
d978428e1eb8885d59a75a5a77f325cb109c8647
User:StevenBoard
2
1620
2473
2024-12-14T07:40:49Z
StevenBoard
1763
Created page with "Modern-day leaners provide several setups and add-ons, permitting you to individualize your grooming schedule. You may conveniently attain the perfect size and shape that matches your skin and design. Additionally, the grooming procedure on its own has actually progressed right into a delightful ritual-- one that can easily raise your early mornings and increase your self-confidence. Accepting [https://community.wongcw.com/posts/920064 Visit This Link] development sugges..."
wikitext
text/x-wiki
Modern-day leaners provide several setups and add-ons, permitting you to individualize your grooming schedule. You may conveniently attain the perfect size and shape that matches your skin and design. Additionally, the grooming procedure on its own has actually progressed right into a delightful ritual-- one that can easily raise your early mornings and increase your self-confidence. Accepting [https://community.wongcw.com/posts/920064 Visit This Link] development suggests you're not merely staying up to date with the trends; you're additionally buying your own self.
9637bdf6935173573ee4a56799d7c2cba1235578
User:ManualEverhart
2
1621
2474
2024-12-14T07:52:34Z
ManualEverhart
1765
Created page with "Consuming organic gluten free granola is a delectable means to appreciate a healthy treat or food. Nola's granola, offered in several granola flavours, consists of alternatives like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola ideal for those looking for wholesome snacks, including granola with cinnamon or golden goji berries.<br><br>Feel free to visit my web-site :: [https://dailyuploads.net/qwmqjc80dvh2..."
wikitext
text/x-wiki
Consuming organic gluten free granola is a delectable means to appreciate a healthy treat or food. Nola's granola, offered in several granola flavours, consists of alternatives like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola ideal for those looking for wholesome snacks, including granola with cinnamon or golden goji berries.<br><br>Feel free to visit my web-site :: [https://dailyuploads.net/qwmqjc80dvh2/Nola_granola_(2).pdf View Our Editors Post]
1fec1a2a1288e7ec85bb6da1f3949fccde811ab8
User:WHGChristie
2
1622
2475
2024-12-14T07:56:59Z
WHGChristie
1766
Created page with "Consuming organic gluten free granola is a delicious technique to delight in a healthy treat or dish. Nola's granola, readily available in different granola flavours, includes choices like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola perfect for [http://www.asystechnik.com/index.php/Benutzer:XUGEmory81678 Investigate This Site] those finding healthy snacks, such as granola with cinnamon or golden goji be..."
wikitext
text/x-wiki
Consuming organic gluten free granola is a delicious technique to delight in a healthy treat or dish. Nola's granola, readily available in different granola flavours, includes choices like coconut almond granola and granola with dark chocolate. Made in small batches, it is actually a non-GMO granola perfect for [http://www.asystechnik.com/index.php/Benutzer:XUGEmory81678 Investigate This Site] those finding healthy snacks, such as granola with cinnamon or golden goji berries.<br><br>My blog [http://michaelshall.withtank.com/gluten-free-granola/ Investigate This Site]
13eaf65d54e0bb2a455f6451f5cd3a87fb43ea59
User:MackenzieTownsen
2
1623
2476
2024-12-14T08:15:04Z
MackenzieTownsen
1759
Created page with "If you're looking for a cake shop in West London that offers best bespoke cakes, look no more. Angies Tiny Treats is actually renowned as the very best cake shop West London, concentrating on custom cakes tailored [https://www.designnominees.com/profile/holden Go To This Web-Site] your needs. Whether it is actually for a birthday or a wedding, Angies Tiny Treats produces remarkable, tasty cakes to create every celebration momentous."
wikitext
text/x-wiki
If you're looking for a cake shop in West London that offers best bespoke cakes, look no more. Angies Tiny Treats is actually renowned as the very best cake shop West London, concentrating on custom cakes tailored [https://www.designnominees.com/profile/holden Go To This Web-Site] your needs. Whether it is actually for a birthday or a wedding, Angies Tiny Treats produces remarkable, tasty cakes to create every celebration momentous.
0d51c1f0d4787ae36530ecb79557e771c7c9117a
User:GabrielaAntonio
2
1624
2477
2024-12-14T09:03:48Z
GabrielaAntonio
1768
Created page with "Consuming organic gluten free granola is actually a scrumptious way to appreciate a healthy treat or food. Nola's granola, accessible in several granola flavours, consists of possibilities like coconut almond granola and granola with dark chocolate. Created in small batches, it's a non-GMO granola excellent for those seeking healthy snacks, including granola with cinnamon or [https://inovlabs.com/wiki/index.php?title=Utilizador:LatashiaNoriega Get More Info] golden goji..."
wikitext
text/x-wiki
Consuming organic gluten free granola is actually a scrumptious way to appreciate a healthy treat or food. Nola's granola, accessible in several granola flavours, consists of possibilities like coconut almond granola and granola with dark chocolate. Created in small batches, it's a non-GMO granola excellent for those seeking healthy snacks, including granola with cinnamon or [https://inovlabs.com/wiki/index.php?title=Utilizador:LatashiaNoriega Get More Info] golden goji berries.<br><br>Also visit my website: [https://lulaellis.hashnode.dev/exactly-how-to-add-natural-gluten-free-granola-to-your-morning-meal-regimen Get More Info]
797091a185b53dea7b1958cbf2ae6182a857da2c
User:Katherina53F
2
1625
2478
2024-12-15T06:01:26Z
Katherina53F
1769
Created page with "Think of the atmosphere you prefer. An energetic retreat along with enjoyment may match some, while others might choose a serene retreat. By spotting your trip design, you're one action deeper to locating the perfect Lombok resort that lines up along with [https://rumble.com/v5z6o6t-just-how-to-go-for-the-excellent-holiday-season-resort-in-lombok.html Get Idea About Your Bit] holiday desires."
wikitext
text/x-wiki
Think of the atmosphere you prefer. An energetic retreat along with enjoyment may match some, while others might choose a serene retreat. By spotting your trip design, you're one action deeper to locating the perfect Lombok resort that lines up along with [https://rumble.com/v5z6o6t-just-how-to-go-for-the-excellent-holiday-season-resort-in-lombok.html Get Idea About Your Bit] holiday desires.
c1e213a61d41527dea9a5c3eac38044053543295
User:DanaeWilt535048
2
1626
2479
2024-12-15T06:12:24Z
DanaeWilt535048
1770
Created page with "Think of the setting you prefer. A dynamic retreat along with home entertainment could match some, while others could like a tranquil retreat. By identifying your travel style, you're one step deeper to locating the excellent Lombok resort that aligns with your vacation aspirations.<br><br>Also visit my website ... [https://www.comicartfans.com/GalleryDetail.asp?GCat=194692 Visit Website]"
wikitext
text/x-wiki
Think of the setting you prefer. A dynamic retreat along with home entertainment could match some, while others could like a tranquil retreat. By identifying your travel style, you're one step deeper to locating the excellent Lombok resort that aligns with your vacation aspirations.<br><br>Also visit my website ... [https://www.comicartfans.com/GalleryDetail.asp?GCat=194692 Visit Website]
0d9358e2a6b25f960a63e7fb6466752339ff03a0
User:ConsueloWarrick
2
1627
2480
2024-12-15T06:39:03Z
ConsueloWarrick
1773
Created page with "A med spa advertising company helps businesses reach their target market with adapted medspa marketing solutions and methods. Along with know-how in medical spa advertising, pay per click initiatives, and electronic advertising, we are actually a leading medical spa marketing provider. Our services are developed to enhance your internet presence and [https://disgaeawiki.info/index.php/User:TrentKenney1 Check More Details Here] increase reservations with highly helpful m..."
wikitext
text/x-wiki
A med spa advertising company helps businesses reach their target market with adapted medspa marketing solutions and methods. Along with know-how in medical spa advertising, pay per click initiatives, and electronic advertising, we are actually a leading medical spa marketing provider. Our services are developed to enhance your internet presence and [https://disgaeawiki.info/index.php/User:TrentKenney1 Check More Details Here] increase reservations with highly helpful medspa advertising and marketing tactics and healthy skin care advertisings.<br><br>Feel free to visit my web site - [https://articlescad.com/guide-for-selecting-the-perfect-med-spa-advertising-company-for-your-business-demands-345267.html Check More Details Here]
73500077778166b4369cb1e52b6df2db80756bae
User:RenateBeavis48
2
1628
2481
2024-12-15T06:54:57Z
RenateBeavis48
1774
Created page with "A med spa advertising company helps businesses reach their target market through modified medspa marketing solutions and strategies. With know-how in medical spa advertising, pay per [https://telegra.ph/Top-Methods-from-a-Medical-Spa-Advertising-Company-12-15 Click Here] projects, and electronic advertising and marketing, we are actually a leading medical spa marketing business. Our services are actually designed to boost your on the internet existence and increase booki..."
wikitext
text/x-wiki
A med spa advertising company helps businesses reach their target market through modified medspa marketing solutions and strategies. With know-how in medical spa advertising, pay per [https://telegra.ph/Top-Methods-from-a-Medical-Spa-Advertising-Company-12-15 Click Here] projects, and electronic advertising and marketing, we are actually a leading medical spa marketing business. Our services are actually designed to boost your on the internet existence and increase bookings through very reliable medspa advertising approaches and skincare promotions.
d03b27d32685b3e886182ab8cf18378fe59de026
User:Arnulfo19P
2
1629
2482
2024-12-15T06:56:20Z
Arnulfo19P
1775
Created page with "A med spa marketing agency aids businesses reach their intended viewers with customized medspa marketing services and approaches. Along with skills in medical spa advertising, pay per click initiatives, and electronic advertising and marketing, we are a prominent medical spa marketing provider. Our services are actually created to increase your on the internet presence and increase reservations via highly helpful medspa marketing methods and natural skin care promotions...."
wikitext
text/x-wiki
A med spa marketing agency aids businesses reach their intended viewers with customized medspa marketing services and approaches. Along with skills in medical spa advertising, pay per click initiatives, and electronic advertising and marketing, we are a prominent medical spa marketing provider. Our services are actually created to increase your on the internet presence and increase reservations via highly helpful medspa marketing methods and natural skin care promotions.<br><br>My webpage :: [https://start.me/w/9Dq7Oa View Source]
395cf7bb6f3dfd0917e4e38353aba537443e422b
User:DarrylChinnery
2
1630
2483
2024-12-15T07:03:06Z
DarrylChinnery
1776
Created page with "A medical spa advertising company assists businesses reach their intended reader with customized medspa marketing services and methods. With know-how in medical spa marketing, pay per click initiatives, and digital advertising and marketing, we are actually a foremost medical spa marketing business. Our services are actually designed to increase your on-line existence and boost bookings with strongly successful medspa advertising and marketing techniques and natural skin..."
wikitext
text/x-wiki
A medical spa advertising company assists businesses reach their intended reader with customized medspa marketing services and methods. With know-how in medical spa marketing, pay per click initiatives, and digital advertising and marketing, we are actually a foremost medical spa marketing business. Our services are actually designed to increase your on-line existence and boost bookings with strongly successful medspa advertising and marketing techniques and natural skin care promotions.<br><br>My site: [https://johncornershop.hatenablog.com/entry/How_a_Focused_Med_Spa_Advertising_Company_Can_Enhance_Your_Business%3F Discover More]
ea74123cc525cf8457a7b34ab7f79b5f09c50a6f
User:NolaMcBeath
2
1631
2484
2024-12-17T13:28:36Z
NolaMcBeath
1779
Created page with "Peptide therapy in London is actually revolutionizing health marketing. Taking advantage of oral peptide bioregulators, this therapy boosts cell regrowth, targeting specific health issues like growing old and irritation. For those looking for intellectual perks, brain peptide therapy delivers remodelings in psychological quality, state of mind, and moment. This cutting-edge therapy is individualized for each and every client, ensuring a customized strategy to well-being..."
wikitext
text/x-wiki
Peptide therapy in London is actually revolutionizing health marketing. Taking advantage of oral peptide bioregulators, this therapy boosts cell regrowth, targeting specific health issues like growing old and irritation. For those looking for intellectual perks, brain peptide therapy delivers remodelings in psychological quality, state of mind, and moment. This cutting-edge therapy is individualized for each and every client, ensuring a customized strategy to well-being and life expectancy.<br><br>Feel free to visit my page - [https://telegra.ph/Reason-Why-Peptide-Therapy-Is-Actually-Gaining-Popularity-in-London-12-14 Learn More Here]
95794c94bf02db7cd243489180be20ecb7949451
User:AmbroseGooseberr
2
1632
2485
2024-12-17T13:40:05Z
AmbroseGooseberr
1781
Created page with "Peptide therapy in London is actually transforming health and wellness optimization. Using oral peptide bioregulators, this therapy enhances cell regrowth, targeting details health and wellness problems like getting older and swelling. For those looking for intellectual perks, brain peptide therapy gives renovations in psychological clarity, mood, and mind. This innovative treatment is actually personalized for every client, ensuring a customized technique to wellness an..."
wikitext
text/x-wiki
Peptide therapy in London is actually transforming health and wellness optimization. Using oral peptide bioregulators, this therapy enhances cell regrowth, targeting details health and wellness problems like getting older and swelling. For those looking for intellectual perks, brain peptide therapy gives renovations in psychological clarity, mood, and mind. This innovative treatment is actually personalized for every client, ensuring a customized technique to wellness and life expectancy.<br><br>Here is my homepage [https://webhitlist.com/profiles/blogs/why-peptide-therapy-is-actually-becoming-more-popular-in-london Visit Here]
d433f0e9886c92baef26b2e56c0d99f089bbc206
User:CharoletteEoff1
2
1633
2486
2024-12-17T13:40:12Z
CharoletteEoff1
1782
Created page with "Peptide therapy in London supplies an all natural approach to health and wellness and health, making use of oral peptide bioregulators to maximize cellular features and help overall stamina. Whether you're looking to boost skin layer, [https://www.fantastischevertellingen.nl/index.php?title=Dealing_With_Persistent_Wellness_Disorders_Through_Peptide_Therapy_In_London learn more] energy, or muscular tissue rehabilitation, this therapy uses targeted solutions. For intellec..."
wikitext
text/x-wiki
Peptide therapy in London supplies an all natural approach to health and wellness and health, making use of oral peptide bioregulators to maximize cellular features and help overall stamina. Whether you're looking to boost skin layer, [https://www.fantastischevertellingen.nl/index.php?title=Dealing_With_Persistent_Wellness_Disorders_Through_Peptide_Therapy_In_London learn more] energy, or muscular tissue rehabilitation, this therapy uses targeted solutions. For intellectual enhancement, brain peptide therapy aids enhance moment, focus, and psychological clarity, enabling you to experience your finest.<br><br>Also visit my webpage: [https://start.me/w/LGnOdN Learn More]
b001d744419af2d9affa2cfa26a4d9315165d63f
User:AnitaBowden8
2
1634
2487
2024-12-18T09:08:19Z
AnitaBowden8
1786
Created page with "Visiting drug rehab in NJ provides crucial help for those fighting addiction. Along with a wide array of services given at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals can easily access tailored care and organized therapy to overcome material abuse. Specialized opioid rehab programs in NJ supply focused treatment for opioid addiction, guaranteeing lasting recovery.<br><br>Feel free to surf to my web blog; [https..."
wikitext
text/x-wiki
Visiting drug rehab in NJ provides crucial help for those fighting addiction. Along with a wide array of services given at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals can easily access tailored care and organized therapy to overcome material abuse. Specialized opioid rehab programs in NJ supply focused treatment for opioid addiction, guaranteeing lasting recovery.<br><br>Feel free to surf to my web blog; [https://x.com/BryanPe87124469/status/1868214281420075278 Check More Details Here]
f57b85a09d206fb14952882dea8c96db5a307f7d
User:Errol80F41
2
1635
2488
2024-12-18T09:10:47Z
Errol80F41
1784
Created page with "Going to drug rehab in NJ supplies necessary assistance for those fighting addiction. Along with a wide array of services used at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals may access personalized care and organized therapy to beat element abuse. Specialized opioid rehab programs in NJ use targeted treatment for opioid addiction, guaranteeing long-lasting recovery.<br><br>Stop by my web-site [https://ourdoings..."
wikitext
text/x-wiki
Going to drug rehab in NJ supplies necessary assistance for those fighting addiction. Along with a wide array of services used at New Jersey drug rehab centers, consisting of partial hospitalization programs in New Jersey, individuals may access personalized care and organized therapy to beat element abuse. Specialized opioid rehab programs in NJ use targeted treatment for opioid addiction, guaranteeing long-lasting recovery.<br><br>Stop by my web-site [https://ourdoings.com/mabelpatton/2024-12-16 e828702]
953db9094f614cf68911fdbc4dfffcae178d706d
User:VeronicaMatteson
2
1636
2489
2024-12-18T16:30:57Z
VeronicaMatteson
1794
Created page with "As the wedding field in Spain continues to conform to the electronic age, the future of wedding gift buying online searches intense. The developing choice for inexpensive wedding details, tailored products, [https://openeducationitalia.it/wiki/index.php?title=Utente:LillyVictor0 Websites] and environmentally friendly options is improving how couples come close to wedding organizing. With the ease of internet purchasing and rapid delivery services, married couples may ea..."
wikitext
text/x-wiki
As the wedding field in Spain continues to conform to the electronic age, the future of wedding gift buying online searches intense. The developing choice for inexpensive wedding details, tailored products, [https://openeducationitalia.it/wiki/index.php?title=Utente:LillyVictor0 Websites] and environmentally friendly options is improving how couples come close to wedding organizing. With the ease of internet purchasing and rapid delivery services, married couples may easily locate the excellent details for wedding and gifts that match their needs and inclinations. As trends develop, Spanish buyers will remain to accept the benefits of online wedding buying, making it an integral component of their wedding events.<br><br>Here is my homepage: [https://papaly.com/categories/share?id=991fa16edad34df1a3fa78f082c99545 Websites]
add136089edc52d20284e1de7e78eb6be1d1e7b2
User:VanitaSommers
2
1637
2490
2024-12-19T07:18:29Z
VanitaSommers
1795
Created page with "If you're trying to buy a portable air conditioner NZ, [https://www.akonter.com/story/best-portable-air-conditioners-in-nz/ Check Our Editor Note] out the wide variety of portable a/c online. With alternatives like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can find the best portable ac unit NZ for your home. These portable central air conditioning units NZ promotion dependable cooling for year-round convenience, especially during the course of the su..."
wikitext
text/x-wiki
If you're trying to buy a portable air conditioner NZ, [https://www.akonter.com/story/best-portable-air-conditioners-in-nz/ Check Our Editor Note] out the wide variety of portable a/c online. With alternatives like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can find the best portable ac unit NZ for your home. These portable central air conditioning units NZ promotion dependable cooling for year-round convenience, especially during the course of the summer heat.
d7dd983716205bcf71e5bbac6e6c009efd335e73
User:HeleneRunion
2
1638
2491
2024-12-19T07:42:42Z
HeleneRunion
1796
Created page with "If you're trying to buy portable air conditioning unit online in New Zealand, NZ Depot delivers a large variety of portable AC units developed for comfort and energy efficiency. Select from best brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you get the greatest portable air conditioning system NZ needs to supply. Perfect for cooling your area efficiently and flexibility.<br><br>Review my page :: [https://www.instapaper.com/read/1708459677 Vis..."
wikitext
text/x-wiki
If you're trying to buy portable air conditioning unit online in New Zealand, NZ Depot delivers a large variety of portable AC units developed for comfort and energy efficiency. Select from best brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you get the greatest portable air conditioning system NZ needs to supply. Perfect for cooling your area efficiently and flexibility.<br><br>Review my page :: [https://www.instapaper.com/read/1708459677 Visit This Link]
9e037cdffc000f937d8b025957d9930388c9ff14
User:DeandreMarkley9
2
1639
2492
2024-12-19T08:05:43Z
DeandreMarkley9
1798
Created page with "If you are actually appearing to purchase portable air conditioning system online in New Zealand, NZ Depot offers a variety of portable AC units developed for convenience and energy effectiveness. Select from top brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you acquire the greatest portable air conditioning system NZ has to use. Perfect for cooling your area comfortably and flexibility.<br><br>Here is my site [https://livepositively.com/caus..."
wikitext
text/x-wiki
If you are actually appearing to purchase portable air conditioning system online in New Zealand, NZ Depot offers a variety of portable AC units developed for convenience and energy effectiveness. Select from top brands like Daikin, Carrier, and Mitsubishi Heavy Industries, guaranteeing you acquire the greatest portable air conditioning system NZ has to use. Perfect for cooling your area comfortably and flexibility.<br><br>Here is my site [https://livepositively.com/causes-to-purchase-a-portable-air-conditioning-system-online-in-new-zealand/ Available Here]
69d08763748f5f093dcefa992326937224e65e62
User:Brandi75T56
2
1640
2493
2024-12-19T08:18:06Z
Brandi75T56
1797
Created page with "If you are actually trying to purchase a portable air conditioner NZ, look into the wide variety of portable air conditioning unit online. With possibilities like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can easily locate the best portable a/c NZ for your home. These portable cooling units NZ deal effective cooling for year-round convenience, especially during the summer months heat.<br><br>My blog post - [https://myspace.com/lazarocavazos/post/acti..."
wikitext
text/x-wiki
If you are actually trying to purchase a portable air conditioner NZ, look into the wide variety of portable air conditioning unit online. With possibilities like Daikin AC, Carrier AC, and Mitsubishi Heavy Industries AC, you can easily locate the best portable a/c NZ for your home. These portable cooling units NZ deal effective cooling for year-round convenience, especially during the summer months heat.<br><br>My blog post - [https://myspace.com/lazarocavazos/post/activity_profile_65321889_3760d5fa26354ccfba85ba073409fe7e/comments Investigate This Site]
cf7c50a02a03ec607d08c57064216ebcfc1ff9e0
User:MakaylaFried
2
1641
2494
2024-12-19T08:46:37Z
MakaylaFried
1799
Created page with "A qualified real estate broker in Montreal offers experienced support in acquiring, selling, [https://hikvisiondb.webcam/wiki/Real_Estate_Professionals_In_Montreal:_A_Manual_To_Their_Services See Details] and leasing buildings. With extensive expertise of the regional market, they provide tailored services tailored to each client's requirements. Their know-how guarantees a smooth, hassle-free deal, whether it is actually a 1st home or a financial investment property in..."
wikitext
text/x-wiki
A qualified real estate broker in Montreal offers experienced support in acquiring, selling, [https://hikvisiondb.webcam/wiki/Real_Estate_Professionals_In_Montreal:_A_Manual_To_Their_Services See Details] and leasing buildings. With extensive expertise of the regional market, they provide tailored services tailored to each client's requirements. Their know-how guarantees a smooth, hassle-free deal, whether it is actually a 1st home or a financial investment property in this lively area.<br><br>My blog [https://myspace.com/lazarocavazos/post/activity_profile_65321889_e6e0ba5895f9479991aa6db30f2326ed/comments See Details]
bc8eea6f4b228b5cd35eaf8e8254f5297a878b0d
User:LucieFries8
2
1642
2495
2024-12-19T09:00:12Z
LucieFries8
1800
Created page with "An expert property agent in Montreal provides professional direction in getting, selling, and [https://thebitcoinproject.club/wiki/index.php/Montreal_Property_Representatives:_The_Services_They_Provide_To_Clients read more here] renting out buildings. Along with detailed knowledge of the local market, they supply tailored services adapted to every client's demands. Their expertise guarantees a smooth, hassle-free transaction, whether it is actually an initial home or an..."
wikitext
text/x-wiki
An expert property agent in Montreal provides professional direction in getting, selling, and [https://thebitcoinproject.club/wiki/index.php/Montreal_Property_Representatives:_The_Services_They_Provide_To_Clients read more here] renting out buildings. Along with detailed knowledge of the local market, they supply tailored services adapted to every client's demands. Their expertise guarantees a smooth, hassle-free transaction, whether it is actually an initial home or an expenditure residential property in this vivid city.<br><br>My web page :: [https://wakelet.com/wake/bwz6IpSu8NB9gGa3WJIrI Read More Here]
683cf8ef5b81d469b62d4f1e9fd438b98e22e339
User:DanteWeathers92
2
1643
2496
2024-12-21T07:48:21Z
DanteWeathers92
1802
Created page with "Create clear channels for comments and conversation. Urge open conversation regarding exactly how the brand new firmware growth service influences their roles and workflows. This transparency builds trust and lowers understanding, allowing your group to adapt additional perfectly.<br><br>my web-site - [http://autobmw.lv/user/hourhair51/ Learn More Here]"
wikitext
text/x-wiki
Create clear channels for comments and conversation. Urge open conversation regarding exactly how the brand new firmware growth service influences their roles and workflows. This transparency builds trust and lowers understanding, allowing your group to adapt additional perfectly.<br><br>my web-site - [http://autobmw.lv/user/hourhair51/ Learn More Here]
97f717462f0e2ccb5631147113641ab574266c14
User:MadieCausey43
2
1644
2497
2024-12-21T08:36:28Z
MadieCausey43
1803
Created page with "Develop crystal clear stations for feedback and conversation. Promote visible dialogue concerning exactly how the brand new firmware growth service effects their roles and operations. This transparency builds trust and reduces awareness, enabling your group to adapt even more perfectly.<br><br>Here is my blog ... [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1284634 Article Source]"
wikitext
text/x-wiki
Develop crystal clear stations for feedback and conversation. Promote visible dialogue concerning exactly how the brand new firmware growth service effects their roles and operations. This transparency builds trust and reduces awareness, enabling your group to adapt even more perfectly.<br><br>Here is my blog ... [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1284634 Article Source]
d9d49c4c123559b3157ca440cab2f2159b5d7e4b
User:GiuseppeStawell
2
1645
2498
2024-12-22T09:54:42Z
GiuseppeStawell
1807
Created page with "The Redmine theme supplies a smooth, present day design that boosts the task administration experience. As a responsive Redmine theme, it makes certain smooth functions throughout devices, featuring mobile. Whether you are actually seeking a commercial Redmine theme or even a paid Redmine theme, this adjustable solution adapts to your group's necessities, enhancing use and performance in handling projects.<br><br>My web-site; [http://www.askmap.net/location/7203367/indon..."
wikitext
text/x-wiki
The Redmine theme supplies a smooth, present day design that boosts the task administration experience. As a responsive Redmine theme, it makes certain smooth functions throughout devices, featuring mobile. Whether you are actually seeking a commercial Redmine theme or even a paid Redmine theme, this adjustable solution adapts to your group's necessities, enhancing use and performance in handling projects.<br><br>My web-site; [http://www.askmap.net/location/7203367/indonesia/nuno-themes Discover More]
3fe9a4f24fd5f4d5eb90a23d9f8116ccc5032487
User:LoriCyr4358204
2
1646
2499
2024-12-23T06:02:44Z
LoriCyr4358204
1808
Created page with "Boosted screening strategies could cultivate responsible marijuana usage, as individuals might become much [https://www.diigo.com/item/note/9dqs5/7tqu?k=cd0bd2f100f74d51c86786986dd06f4f Discover More Here] aware of their impairment degrees. By focusing on social protection through exact cannabis impairment examinations, areas can easily better browse the complexities of cannabis legalization while reducing dangers connected with intoxicated driving."
wikitext
text/x-wiki
Boosted screening strategies could cultivate responsible marijuana usage, as individuals might become much [https://www.diigo.com/item/note/9dqs5/7tqu?k=cd0bd2f100f74d51c86786986dd06f4f Discover More Here] aware of their impairment degrees. By focusing on social protection through exact cannabis impairment examinations, areas can easily better browse the complexities of cannabis legalization while reducing dangers connected with intoxicated driving.
e8545d23f23cc1ebb7d896542f3c38d6fe52ee05
User:Chana60V7190
2
1647
2500
2024-12-23T06:17:48Z
Chana60V7190
1809
Created page with "Partnering along with a reputable white label search engine optimization firm permits companies to provide top notch SEO services without buying in-house groups. Providing services for white label search engine optimization services, they assist businesses in the UK, United States, Ireland business increase presence and [https://verkaufs-lexikon.de/index.php?title=How_A_White_Label_SEO_Company_Helps_In_Getting_Customer_Trust_And_Cultivating_Support Find More About This]..."
wikitext
text/x-wiki
Partnering along with a reputable white label search engine optimization firm permits companies to provide top notch SEO services without buying in-house groups. Providing services for white label search engine optimization services, they assist businesses in the UK, United States, Ireland business increase presence and [https://verkaufs-lexikon.de/index.php?title=How_A_White_Label_SEO_Company_Helps_In_Getting_Customer_Trust_And_Cultivating_Support Find More About This] travel development. Agencies can easily trust all of them to handle SEO tasks while concentrating on customer relationships and business development.<br><br>Here is my website :: [http://www.askmap.net/location/7204079/united-kingdom/bes-poke-marketing-plans Find More About This]
4e585c4970a4090be6ff7121285cc22a21694191
User:SuzetteStonge7
2
1648
2501
2024-12-23T06:35:42Z
SuzetteStonge7
1810
Created page with "Partnering along with a reliable white label search engine optimization company permits agencies to supply high quality SEO services without purchasing in-house crews. Providing services for [https://wiki.asexuality.org/w/index.php?title=User_talk:Kathleen47D See Details] white label SEO services, they help businesses in the UK, U.S.A., Ireland business increase presence and drive growth. Agencies can easily trust all of them to deal with search engine optimization duti..."
wikitext
text/x-wiki
Partnering along with a reliable white label search engine optimization company permits agencies to supply high quality SEO services without purchasing in-house crews. Providing services for [https://wiki.asexuality.org/w/index.php?title=User_talk:Kathleen47D See Details] white label SEO services, they help businesses in the UK, U.S.A., Ireland business increase presence and drive growth. Agencies can easily trust all of them to deal with search engine optimization duties while concentrating on customer connections and business development.<br><br>Here is my web page [https://www.tumblr.com/truckdrivingtraining/770557896266317824/tips-to-thriving-in-a-competitive-market-with-a?source=share See Details]
8a172c4fb5908b6854ba7301eef8f23f62031412
User:JackP0151049223
2
1649
2502
2024-12-23T06:50:10Z
JackP0151049223
1811
Created page with "Partnering with a reliable white label SEO business permits firms to deliver top quality search engine optimization services without acquiring internal crews. Focusing in white label search engine optimization services, they aid businesses in the UK, United States, Ireland [https://wiki.woge.or.at//index.php?title=Benutzer:Luca12D26930041 Visit This Link] business increase visibility and drive development. Agencies can easily trust them to deal with SEO activities while..."
wikitext
text/x-wiki
Partnering with a reliable white label SEO business permits firms to deliver top quality search engine optimization services without acquiring internal crews. Focusing in white label search engine optimization services, they aid businesses in the UK, United States, Ireland [https://wiki.woge.or.at//index.php?title=Benutzer:Luca12D26930041 Visit This Link] business increase visibility and drive development. Agencies can easily trust them to deal with SEO activities while centering on client connections and business development.<br><br>Also visit my website :: [https://josuebowen.mystrikingly.com/blog/how-a-white-label-search-engine-optimization-company-can-improvement-your Visit This Link]
b91e299fb450e22609801f45ba040e0d706ca66b
User:Stanton1259
2
1650
2503
2024-12-23T06:56:42Z
Stanton1259
1812
Created page with "Partnering with a dependable white label SEO provider allows organizations to deliver premium SEO services without acquiring internal groups. Concentrating in white label search engine optimization services, they assist businesses in the UK, USA, Ireland business increase exposure and travel development. Agencies may trust all of them to deal with search engine optimization duties while paying attention to client relationships and business growth.<br><br>Here is my web p..."
wikitext
text/x-wiki
Partnering with a dependable white label SEO provider allows organizations to deliver premium SEO services without acquiring internal groups. Concentrating in white label search engine optimization services, they assist businesses in the UK, USA, Ireland business increase exposure and travel development. Agencies may trust all of them to deal with search engine optimization duties while paying attention to client relationships and business growth.<br><br>Here is my web page - [https://www.pdc.edu/?URL=https://bespokemarketingplans.co.uk/ Discover More Here]
1769ac6d2c9e75ac3085a191ff75655de56a1dad
User:TresaAmato78850
2
1651
2504
2024-12-23T07:03:29Z
TresaAmato78850
1814
Created page with "Enriched testing procedures could cultivate responsible cannabis intake, as individuals may end up being more informed of their issue levels. By prioritizing public safety by means of precise weed impairment assessments, [http://food.errol.org.uk/index.php/User:LinMerewether8 Visit Here] communities can easily better get through the intricacies of cannabis legalisation while minimizing threats related to inebriated driving.<br><br>Also visit my website ... [https://www...."
wikitext
text/x-wiki
Enriched testing procedures could cultivate responsible cannabis intake, as individuals may end up being more informed of their issue levels. By prioritizing public safety by means of precise weed impairment assessments, [http://food.errol.org.uk/index.php/User:LinMerewether8 Visit Here] communities can easily better get through the intricacies of cannabis legalisation while minimizing threats related to inebriated driving.<br><br>Also visit my website ... [https://www.onfeetnation.com/profiles/blogs/precisely-how-cannabis-drunkenness-is-actually-checked-approaches Visit Here]
1dcdd7d7954bbd13f86663adc2623a1980963af5
User:AngelikaFairley
2
1652
2505
2024-12-23T07:18:15Z
AngelikaFairley
1816
Created page with "Watch on messages including free offers or even competitions. Getting involved may certainly not merely score you totally free products however additionally present you to brands that deliver superb gifts for women, reusable laundry bags, and [https://www.exoltech.us/blogs/245181/Exactly-How-to-Select-the-Greatest-Everyday-Way-Of-Life Check More Details Here]."
wikitext
text/x-wiki
Watch on messages including free offers or even competitions. Getting involved may certainly not merely score you totally free products however additionally present you to brands that deliver superb gifts for women, reusable laundry bags, and [https://www.exoltech.us/blogs/245181/Exactly-How-to-Select-the-Greatest-Everyday-Way-Of-Life Check More Details Here].
6c3102379e0d9aea16ea3c4fe70a2814bfd210c9
User:Concepcion24L
2
1653
2506
2024-12-23T07:23:42Z
Concepcion24L
1817
Created page with "Watch on articles featuring free offers or contests. Engaging can easily certainly not only count you cost-free items yet additionally offer you to brand names that offer great presents for females, recyclable laundry bags, and even more.<br><br>my web-site :: [https://ourdoings.com/unlisted/pd6nqve7/2024-12-22 e828710]"
wikitext
text/x-wiki
Watch on articles featuring free offers or contests. Engaging can easily certainly not only count you cost-free items yet additionally offer you to brand names that offer great presents for females, recyclable laundry bags, and even more.<br><br>my web-site :: [https://ourdoings.com/unlisted/pd6nqve7/2024-12-22 e828710]
e39a63f9914146275e31dcda941cc2af74cd1415
User:JeraldClemes817
2
1654
2507
2024-12-23T09:01:50Z
JeraldClemes817
1818
Created page with "Watch on posts featuring giveaways or contests. Participating can easily certainly not only record you totally free items yet also present you to brands that give great gifts for women, recyclable washing bags, and even more.<br><br>Here is my page - [https://uconnect.ae/post/695980_just-how-to-pick-the-very-best-online-way-of-life-products-for-your-everyday-pro.html Click Here]"
wikitext
text/x-wiki
Watch on posts featuring giveaways or contests. Participating can easily certainly not only record you totally free items yet also present you to brands that give great gifts for women, recyclable washing bags, and even more.<br><br>Here is my page - [https://uconnect.ae/post/695980_just-how-to-pick-the-very-best-online-way-of-life-products-for-your-everyday-pro.html Click Here]
1e5b635654b0a8519f11eb699ed0ef5961d47e99
User:MillieManns9276
2
1655
2508
2024-12-23T09:22:07Z
MillieManns9276
1819
Created page with "Keep an eye on articles including free gifts or even contests. Engaging can not only record you free of cost products however likewise introduce you to brands that deliver outstanding presents for ladies, reusable laundry washing bags, and even more.<br><br>Here is my web page ... [http://markhearnelink.unblog.fr/2024/12/23/reasons-that-budget-friendly-online-daily-way-of-life-products-are-actually-a-must-have/ Check Our Editor Note]"
wikitext
text/x-wiki
Keep an eye on articles including free gifts or even contests. Engaging can not only record you free of cost products however likewise introduce you to brands that deliver outstanding presents for ladies, reusable laundry washing bags, and even more.<br><br>Here is my web page ... [http://markhearnelink.unblog.fr/2024/12/23/reasons-that-budget-friendly-online-daily-way-of-life-products-are-actually-a-must-have/ Check Our Editor Note]
6e455efbc914f8b45872cb618119f7d289acd2d3
User:BradRotton21094
2
1656
2509
2024-12-23T12:16:56Z
BradRotton21094
1820
Created page with "Home control in Phuket takes the burden off your take on through offering end-to-end services, consisting of upkeep, occupant associations, and economic monitoring. No matter if you possess a solitary property or a profile of homes, delegating their care to a residential or commercial property control firm ensures they remain in superior shape without demanding continual attention from you.<br><br>my web site - [https://www.tumblr.com/thebucketlistnyc/769907994241761280/..."
wikitext
text/x-wiki
Home control in Phuket takes the burden off your take on through offering end-to-end services, consisting of upkeep, occupant associations, and economic monitoring. No matter if you possess a solitary property or a profile of homes, delegating their care to a residential or commercial property control firm ensures they remain in superior shape without demanding continual attention from you.<br><br>my web site - [https://www.tumblr.com/thebucketlistnyc/769907994241761280/reasons-to-purchase-technician-property-marketing?source=share Check More Details Here]
fa2e0cd34362e05da554b5849941e075479bb931
User:PatriciaWest96
2
1657
2510
2024-12-23T13:00:15Z
PatriciaWest96
1821
Created page with "Residential property monitoring in Phuket takes the concern off your take on through offering end-to-end services, featuring routine maintenance, tenant associations, and economic control. Regardless if you own a singular rental property or even a portfolio of residential properties, leaving their care to a building administration company ensures they continue to be in optimal state without requiring continuous attention from you.<br><br>Also visit my site :: [https://ww..."
wikitext
text/x-wiki
Residential property monitoring in Phuket takes the concern off your take on through offering end-to-end services, featuring routine maintenance, tenant associations, and economic control. Regardless if you own a singular rental property or even a portfolio of residential properties, leaving their care to a building administration company ensures they continue to be in optimal state without requiring continuous attention from you.<br><br>Also visit my site :: [https://www.deviantart.com/interpropertyphuket Visit This Link]
b9aa2f5745e2f717a9ab866ead465952ba45f8dd
User:GHAAlex888
2
1658
2511
2024-12-23T13:05:49Z
GHAAlex888
1823
Created page with "Residential property administration in Phuket takes the trouble off your shoulders by offering end-to-end services, including servicing, tenant associations, and monetary management. Whether you possess a singular villa or a profile of properties, entrusting their care to a building control provider ensures they stay in optimal shape without requiring consistent interest from you.<br><br>Also visit my blog post ... [https://www.quora.com/Why-is-choosing-property-manageme..."
wikitext
text/x-wiki
Residential property administration in Phuket takes the trouble off your shoulders by offering end-to-end services, including servicing, tenant associations, and monetary management. Whether you possess a singular villa or a profile of properties, entrusting their care to a building control provider ensures they stay in optimal shape without requiring consistent interest from you.<br><br>Also visit my blog post ... [https://www.quora.com/Why-is-choosing-property-management-useful/answer/RaihanKobir-RaihanKobir Learn More]
710ec32a463d94f66b8897da4d9ee534dc4fa560
User:ArnulfoCanterbur
2
1659
2512
2024-12-23T13:17:14Z
ArnulfoCanterbur
1822
Created page with "Home administration in Phuket takes the concern off your shoulders by giving end-to-end services, [https://wiki.woge.or.at//index.php?title=Benutzer:Norberto77Q Read From The Link] featuring routine maintenance, lessee connections, and economic management. No matter if you have a singular vacation home or a profile of buildings, delegating their care to a building administration firm ensures they remain in ideal condition without demanding consistent interest from you.<..."
wikitext
text/x-wiki
Home administration in Phuket takes the concern off your shoulders by giving end-to-end services, [https://wiki.woge.or.at//index.php?title=Benutzer:Norberto77Q Read From The Link] featuring routine maintenance, lessee connections, and economic management. No matter if you have a singular vacation home or a profile of buildings, delegating their care to a building administration firm ensures they remain in ideal condition without demanding consistent interest from you.<br><br>Feel free to visit my homepage ... [http://markhearnelink.unblog.fr/2024/12/23/just-how-home-monitoring-in-phuket-may-assist-optimize-your-rental-earnings/ Click This Link]
ca636b383f531084c50161766fba1bfe84775156
User:RochelleSpinks
2
1660
2513
2024-12-24T11:38:07Z
RochelleSpinks
1825
Created page with "A recruitment agency provides services for sourcing best talent around a variety of business. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they supply tailored services to fulfill unique business demands. As a leading marketing recruitment agency, they offer knowledge in marketing recruitment, [https://munidigital.iie.cl/wiki/index.php?title=Usuario:DanieleRoby4374 Read More Here] customer success recruitment, and much [https://recruitmentpl..."
wikitext
text/x-wiki
A recruitment agency provides services for sourcing best talent around a variety of business. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they supply tailored services to fulfill unique business demands. As a leading marketing recruitment agency, they offer knowledge in marketing recruitment, [https://munidigital.iie.cl/wiki/index.php?title=Usuario:DanieleRoby4374 Read More Here] customer success recruitment, and much [https://recruitmentplus.substack.com/p/primary-traits-to-consider-when-picking Read More Here]. Their emphasis gets on delivering high-grade job solutions for startups and well-known businesses.
3e7f1267a20c9c647be19bf6e30731d53ce65c99
User:RaulA912640120
2
1661
2514
2024-12-24T11:58:48Z
RaulA912640120
1827
Created page with "An employment company concentrates in sourcing top ability all over a variety of fields. Whether it's CEO recruitment, CTO recruitment, or even tech sales recruitment, they offer tailored services to fulfill one-of-a-kind business needs. As a leading marketing recruitment agency, they deliver knowledge in marketing recruitment, customer success recruitment, and extra. Their concentration gets on providing high-grade job solutions for start-ups and reputable businesses.<b..."
wikitext
text/x-wiki
An employment company concentrates in sourcing top ability all over a variety of fields. Whether it's CEO recruitment, CTO recruitment, or even tech sales recruitment, they offer tailored services to fulfill one-of-a-kind business needs. As a leading marketing recruitment agency, they deliver knowledge in marketing recruitment, customer success recruitment, and extra. Their concentration gets on providing high-grade job solutions for start-ups and reputable businesses.<br><br>Have a look at my web site: [https://www.instapaper.com/read/1738865888 Learn More]
53025b9ef88eb1a6096052506dcef734c663470e
User:PansyBoulton2
2
1662
2515
2024-12-24T12:23:17Z
PansyBoulton2
1828
Created page with "A recruitment agency focuses on sourcing [http://www.blurb.com/user/ShaniyafgAnderson?profile_preview=true Check Our Top Pick] talent across different fields. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they use tailored services to fulfill unique business needs. As a leading marketing recruitment agency, they deliver competence in marketing recruitment, customer success recruitment, and [https://wiki.asexuality.org/w/index.php?title=User_t..."
wikitext
text/x-wiki
A recruitment agency focuses on sourcing [http://www.blurb.com/user/ShaniyafgAnderson?profile_preview=true Check Our Top Pick] talent across different fields. Whether it's CEO recruitment, CTO recruitment, or tech sales recruitment, they use tailored services to fulfill unique business needs. As a leading marketing recruitment agency, they deliver competence in marketing recruitment, customer success recruitment, and [https://wiki.asexuality.org/w/index.php?title=User_talk:ColetteBeaufort Check Our Top Pick] much more. Their emphasis performs supplying high quality job solutions for startups and well established businesses.
b86310956eb005fcbe3457b46d383eec90df59b6
User:WilhelminaMccord
2
1663
2516
2025-01-04T16:26:05Z
WilhelminaMccord
1839
Created page with "An information technology provider Prague concentrates on supplying awesome IT services tailored to businesses of all dimensions. From hosting server administration to cybersecurity, this leading IT provider gives ingenious solutions to enrich functional efficiency. With cutting-edge IT services Prague, they make certain smooth combination, durable safety and security, and dependable support, creating them a relied on companion for businesses looking for thorough IT serv..."
wikitext
text/x-wiki
An information technology provider Prague concentrates on supplying awesome IT services tailored to businesses of all dimensions. From hosting server administration to cybersecurity, this leading IT provider gives ingenious solutions to enrich functional efficiency. With cutting-edge IT services Prague, they make certain smooth combination, durable safety and security, and dependable support, creating them a relied on companion for businesses looking for thorough IT services.<br><br>Visit my blog post: [https://tan-jumpsuit-afa.notion.site/Co-Je-IT-spole-nost-v-Praze-P-il-kat-Pozornost-v-Technik-Pr-myslu-16e4d75a9c7c8047a346d98c7766030d?pvs=4 Visit Website]
23d05cf9d2e2407af53c2154227d26c2e6aa65cc
User:MichaelRitz6309
2
1664
2517
2025-01-04T17:00:34Z
MichaelRitz6309
1843
Created page with "Deciding on a luxurious accommodation in Prague isn't pretty much lavish surroundings; it is actually concerning developing enduring moments in an alluring area. You'll locate that every single second spent in such an environment really feels absolutely unique, allowing you to immerse your own self in both comfort and type.<br><br>My blog post ... [https://trello.com/b/67743441c61a7df63a7e18b1/ATTI3f6679d246e1fceacd9f5f7eb3b97cb67C28257F/expert-tipy-pro-rezervaci-vysadou..."
wikitext
text/x-wiki
Deciding on a luxurious accommodation in Prague isn't pretty much lavish surroundings; it is actually concerning developing enduring moments in an alluring area. You'll locate that every single second spent in such an environment really feels absolutely unique, allowing you to immerse your own self in both comfort and type.<br><br>My blog post ... [https://trello.com/b/67743441c61a7df63a7e18b1/ATTI3f6679d246e1fceacd9f5f7eb3b97cb67C28257F/expert-tipy-pro-rezervaci-vysadou-resort-v-praze Get More Info]
9b611bd0379787a1658b9630161936d6b4c59911
User:ShanelBalas208
2
1665
2518
2025-01-04T17:06:51Z
ShanelBalas208
1844
Created page with "Coaching treatments may be booked at your ease, proper seamlessly in to your occupied lifestyle. The adaptability in scheduling permits you to prioritize your education and learning without having overwhelming your various other commitments. Overall, tailored tutoring certainly not simply improves your scholarly performance yet likewise grows an affection for learning that may last a lifetime.<br><br>Here is my web blog - [https://vuf.minagricultura.gov.co/Lists/Informac..."
wikitext
text/x-wiki
Coaching treatments may be booked at your ease, proper seamlessly in to your occupied lifestyle. The adaptability in scheduling permits you to prioritize your education and learning without having overwhelming your various other commitments. Overall, tailored tutoring certainly not simply improves your scholarly performance yet likewise grows an affection for learning that may last a lifetime.<br><br>Here is my web blog - [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10111052 Get More Info]
17eb863aedd9babc4e8285e3b1e346d16bf34cf9
User:EmilioStitt7315
2
1666
2519
2025-01-04T17:10:52Z
EmilioStitt7315
1842
Created page with "When you need reputable legal support, trust a skilled attorney in Attleboro. Whether you're seeking an Attleboro criminal defense lawyer or require support along with place preparing, our specialists offer skilled services. Concentrating in wills, trusts, and unlawful defense, we ensure that your lawsuit is managed with utmost care and experience.<br><br>my blog: [https://www.exoltech.us/blogs/248204/The-Role-of-a-Lawyer-in-Attleboro-in-Offender-Defense Read From The Link]"
wikitext
text/x-wiki
When you need reputable legal support, trust a skilled attorney in Attleboro. Whether you're seeking an Attleboro criminal defense lawyer or require support along with place preparing, our specialists offer skilled services. Concentrating in wills, trusts, and unlawful defense, we ensure that your lawsuit is managed with utmost care and experience.<br><br>my blog: [https://www.exoltech.us/blogs/248204/The-Role-of-a-Lawyer-in-Attleboro-in-Offender-Defense Read From The Link]
54b0ee7947312041caacb23f7a46aa4d2bbfeec8
User:GeoffreyMendes0
2
1667
2520
2025-01-04T17:20:00Z
GeoffreyMendes0
1846
Created page with "An IT company Prague focuses on delivering awesome IT services adapted to businesses of all dimensions. From hosting server monitoring to cybersecurity, this leading IT firm delivers innovative solutions to enrich functional effectiveness. Along with innovative IT services Prague, they make sure smooth integration, durable safety and [http://www.larsaluarna.se/index.php/How_IT_Companies_In_Prague_Are_Actually_Transforming_Businesses_Along_With_Cloud_Solutions discover m..."
wikitext
text/x-wiki
An IT company Prague focuses on delivering awesome IT services adapted to businesses of all dimensions. From hosting server monitoring to cybersecurity, this leading IT firm delivers innovative solutions to enrich functional effectiveness. Along with innovative IT services Prague, they make sure smooth integration, durable safety and [http://www.larsaluarna.se/index.php/How_IT_Companies_In_Prague_Are_Actually_Transforming_Businesses_Along_With_Cloud_Solutions discover more] security, and reputable support, making them a relied on partner for businesses finding detailed IT services.<br><br>My webpage: [https://www.bitsdujour.com/profiles/Ffo1Rd Discover More]
8ea33aaf573cc19b3fb0cd3ceca89228ee2b6dc7
User:Connie8616
2
1668
2521
2025-01-04T17:22:41Z
Connie8616
1845
Created page with "Selecting a luxury accommodation in Prague isn't almost lush settings; it is actually regarding developing enduring memories in an alluring metropolitan area. You'll discover that every minute devoted in such a setup really feels absolutely special, permitting you to immerse on your own in each convenience and type.<br><br>Feel free to visit my blog - [https://guiderinfo.blogspot.com/2025/01/prinosy-zbyvajici-v-luxusni-hotel-v.html Read More From Here]"
wikitext
text/x-wiki
Selecting a luxury accommodation in Prague isn't almost lush settings; it is actually regarding developing enduring memories in an alluring metropolitan area. You'll discover that every minute devoted in such a setup really feels absolutely special, permitting you to immerse on your own in each convenience and type.<br><br>Feel free to visit my blog - [https://guiderinfo.blogspot.com/2025/01/prinosy-zbyvajici-v-luxusni-hotel-v.html Read More From Here]
da792d4df05a54296138e12498240936a5eb7cc4
User:GemmaShimp0
2
1669
2522
2025-01-04T18:27:27Z
GemmaShimp0
1848
Created page with "Tutoring sessions may be planned at your advantage, fitting flawlessly right into your active life. The adaptability in organizing permits you to focus on your learning without having overwhelming your various other devotions. Overall, personalized tutoring certainly not simply improves your scholarly functionality yet likewise cultivates a passion for [https://bir.localmesh.org/doku.php?id=why_deciding_on_a_pedagogy_se_vice_p_ovide_in_p_ague_can_enhance clicking here]..."
wikitext
text/x-wiki
Tutoring sessions may be planned at your advantage, fitting flawlessly right into your active life. The adaptability in organizing permits you to focus on your learning without having overwhelming your various other devotions. Overall, personalized tutoring certainly not simply improves your scholarly functionality yet likewise cultivates a passion for [https://bir.localmesh.org/doku.php?id=why_deciding_on_a_pedagogy_se_vice_p_ovide_in_p_ague_can_enhance clicking here] discovering that can last a lifetime.<br><br>My page: [https://www.dermandar.com/user/whipminute45/ Clicking Here]
165a00259777cca7577660459f67adf008e67173
User:CRTStephany
2
1670
2523
2025-01-05T05:13:43Z
CRTStephany
1853
Created page with "When seeking an expert barbershop in The Colony, clients may expect exceptional service from professional hairdressers and hair stylists. Whether it's a new slick or [https://pipewiki.org/wiki/index.php/User:AndreRodius9 Article Source] a full style remodeling, this barbershop in Richardson and its concerning areas like barbershop Garland and barbershop Mesquite promotion skillful experts. Trust barber Mesquite or even hairstylist Richardson to deliver the best look whe..."
wikitext
text/x-wiki
When seeking an expert barbershop in The Colony, clients may expect exceptional service from professional hairdressers and hair stylists. Whether it's a new slick or [https://pipewiki.org/wiki/index.php/User:AndreRodius9 Article Source] a full style remodeling, this barbershop in Richardson and its concerning areas like barbershop Garland and barbershop Mesquite promotion skillful experts. Trust barber Mesquite or even hairstylist Richardson to deliver the best look whenever.<br><br>my page ... [https://www.tumblr.com/nerdybookwormdetective/771733973344878592/the-effect-of-hair-salons-on-haircut-trends-around?source=share Article Source]
69607a9d2326f5f9307e33fd008dad92a5af7c64
User:NapoleonBlundsto
2
1671
2524
2025-01-05T05:47:02Z
NapoleonBlundsto
1856
Created page with "When trying to find a specialist barbershop in The Colony, clients may anticipate exceptional service from expert barbers and hairstylist. Whether it is actually a new slick or a comprehensive design transformation, [https://www.scoop.it/topic/business-by-jarrodstearns/p/4163261726/2025/01/05/leading-hair-salons-in-texas-for-stylists Visit This Link] barbershop in Richardson and its regarding regions like barbershop Garland and [http://archmageriseswiki.com/index.php/Us..."
wikitext
text/x-wiki
When trying to find a specialist barbershop in The Colony, clients may anticipate exceptional service from expert barbers and hairstylist. Whether it is actually a new slick or a comprehensive design transformation, [https://www.scoop.it/topic/business-by-jarrodstearns/p/4163261726/2025/01/05/leading-hair-salons-in-texas-for-stylists Visit This Link] barbershop in Richardson and its regarding regions like barbershop Garland and [http://archmageriseswiki.com/index.php/User:GusT5703617784 Visit This Link] barbershop Mesquite offer trained pros. Trust barber Mesquite or even hair stylist Richardson to supply the excellent look every time.
9697e8e59579f68eaff1b6218a5d16286cf1694a
User:GavinCavill
2
1672
2525
2025-01-05T05:53:00Z
GavinCavill
1857
Created page with "When searching for a professional barbershop in The Colony, customers can easily expect awesome service from knowledgeable barbers and hairstylist. Whether it is actually a clean trim or a complete type transformation, [https://www.getlisteduae.com/listings/modern-image-barber-stylist This Article] barbershop in Richardson and its own surrounding areas like barbershop Garland and barbershop Mesquite offer skillful specialists. Trust barber Mesquite or hairstylist Richard..."
wikitext
text/x-wiki
When searching for a professional barbershop in The Colony, customers can easily expect awesome service from knowledgeable barbers and hairstylist. Whether it is actually a clean trim or a complete type transformation, [https://www.getlisteduae.com/listings/modern-image-barber-stylist This Article] barbershop in Richardson and its own surrounding areas like barbershop Garland and barbershop Mesquite offer skillful specialists. Trust barber Mesquite or hairstylist Richardson to deliver the perfect look whenever.
2bde63ec45d5fd67b84fc299b5c9e111a6ecdfa9
User:GenesisWxz
2
1673
2526
2025-01-05T05:58:52Z
GenesisWxz
1858
Created page with "Purchasing a dash cam for Uber drivers gives added safety and security when traveling. A 4K car dash cam guarantees transparent video, while the most ideal 3-channel dash cam grabs face, log cabin, and rear viewpoints. Try to find a dash cam with night vision, car parking style, and [http://wiki.dark-warriors.net/index.php/The_Developing_Popularity_Of_Dash_Cams:_Why_Drivers_Are_Counting_On_This_Modern_Technology Check Our Top Pick] G-sensor for reputable monitoring, plu..."
wikitext
text/x-wiki
Purchasing a dash cam for Uber drivers gives added safety and security when traveling. A 4K car dash cam guarantees transparent video, while the most ideal 3-channel dash cam grabs face, log cabin, and rear viewpoints. Try to find a dash cam with night vision, car parking style, and [http://wiki.dark-warriors.net/index.php/The_Developing_Popularity_Of_Dash_Cams:_Why_Drivers_Are_Counting_On_This_Modern_Technology Check Our Top Pick] G-sensor for reputable monitoring, plus a dash cam with SD card included for benefit.<br><br>Here is my web site [https://uconnect.ae/post/719144_purchase-4k-car-dashboard-cam-for-optimum-defense-buying-a-dash-cam-for-uber-dri.html Check Our Top Pick]
0bac3a9a7807be6f2d92f1605a4df3701aa8b25d
User:NannieFle1825
2
1674
2527
2025-01-05T06:17:04Z
NannieFle1825
1859
Created page with "Buying a dash cam for Uber drivers delivers extra protection when driving. A 4K car dash cam makes sure transparent video, while the most effective 3-channel dash cam captures front end, cabin, and rear sights. Seek a dash cam with night vision, vehicle parking mode, and G-sensor for trustworthy surveillance, plus a dash cam with SD card included for ease.<br><br>My web-site [https://rumble.com/v660qfs-purchase-4k-car-dashboard-webcam-for-best-security.html Going Here]"
wikitext
text/x-wiki
Buying a dash cam for Uber drivers delivers extra protection when driving. A 4K car dash cam makes sure transparent video, while the most effective 3-channel dash cam captures front end, cabin, and rear sights. Seek a dash cam with night vision, vehicle parking mode, and G-sensor for trustworthy surveillance, plus a dash cam with SD card included for ease.<br><br>My web-site [https://rumble.com/v660qfs-purchase-4k-car-dashboard-webcam-for-best-security.html Going Here]
ea9d772e36529dcd5f5c094a03dd35de4d00cca1
User:MarylinRubio7
2
1675
2528
2025-01-05T06:19:53Z
MarylinRubio7
1860
Created page with "Purchasing a dash cam for Uber drivers supplies additional safety and security when traveling. A 4K car dash cam ensures transparent footage, while the most effective 3-channel dash cam records front end, cabin, and rear sights. Seek a dash cam with night vision, parking style, [https://verkaufs-lexikon.de/index.php?title=Benutzer:Broderick9525 Click Here] and G-sensor for trusted monitoring, plus a dash cam with SD card included for convenience.<br><br>my web page; [ht..."
wikitext
text/x-wiki
Purchasing a dash cam for Uber drivers supplies additional safety and security when traveling. A 4K car dash cam ensures transparent footage, while the most effective 3-channel dash cam records front end, cabin, and rear sights. Seek a dash cam with night vision, parking style, [https://verkaufs-lexikon.de/index.php?title=Benutzer:Broderick9525 Click Here] and G-sensor for trusted monitoring, plus a dash cam with SD card included for convenience.<br><br>my web page; [https://www.callupcontact.com/b/businessprofile/Stellar_Sight_Pro/9457641 Click Here]
270284f750a3036571c1ed1d8fdcd9d8d863f1d0
User:DaltonTavares
2
1676
2529
2025-01-05T06:21:43Z
DaltonTavares
1862
Created page with "Virtual office uses businesses a pliable, cost-efficient solution for remote job. Along with virtual workspaces, crews can easily team up perfectly from anywhere, accessing tools and [https://accc.rcec.sinica.edu.tw/mediawiki/index.php?title=Virtual_Workplace_Development:_Redefining_The_Future_Of_The_Work_Environment learn more] resources in actual time. This electronic atmosphere fosters efficiency, lowering overhanging costs while keeping expert specifications. Take a..."
wikitext
text/x-wiki
Virtual office uses businesses a pliable, cost-efficient solution for remote job. Along with virtual workspaces, crews can easily team up perfectly from anywhere, accessing tools and [https://accc.rcec.sinica.edu.tw/mediawiki/index.php?title=Virtual_Workplace_Development:_Redefining_The_Future_Of_The_Work_Environment learn more] resources in actual time. This electronic atmosphere fosters efficiency, lowering overhanging costs while keeping expert specifications. Take advantage of virtual office solutions to enhance functions and generate a powerful, dependable job environment for your team.<br><br>My blog: [https://erikachurch.wixsite.com/home/post/the-value-of-virtual-office-for-international-teams Learn More]
c8b116ff92e4b58a51a71601d504e08bd99b0211
User:HUGTam164875211
2
1677
2530
2025-01-05T08:42:23Z
HUGTam164875211
1867
Created page with "Expert boiler evaluation services in Prague make certain gas boilers are actually secure and effective. Routine gas boiler evaluation helps find concerns early, lessening the danger of break downs. Gas boiler setup experts provide reliable, professional setup to make sure optimum functionality and energy effectiveness. Whether it is actually routine boiler examination or a new gas boiler setup, these services assure assurance and resilient outcomes.<br><br>Also visit my..."
wikitext
text/x-wiki
Expert boiler evaluation services in Prague make certain gas boilers are actually secure and effective. Routine gas boiler evaluation helps find concerns early, lessening the danger of break downs. Gas boiler setup experts provide reliable, professional setup to make sure optimum functionality and energy effectiveness. Whether it is actually routine boiler examination or a new gas boiler setup, these services assure assurance and resilient outcomes.<br><br>Also visit my web site ... [https://www.tumblr.com/catarinalee-sfpc/771810414747140096/p%C5%99esn%C4%9B-v%C4%9Bd%C4%9Bt-jak%C3%BD-by-pochopit-plynov%C3%A9-kotle?source=share Check More Details Here]
da30a3fc6520f172b08513d9adccc09c16150495
User:RowenaIsn9296
2
1678
2531
2025-01-05T08:45:21Z
RowenaIsn9296
1865
Created page with "Specialist boiler inspection services in Prague make certain gas boilers are actually secure and efficient. Frequent gas boiler evaluation helps spot issues early, decreasing the risk of breakdowns. Gas boiler setup professionals supply trustworthy, skilled installation to guarantee optimal performance and [https://wavedream.wiki/index.php/The_Relevance_Of_Gas_Boiler_Evaluation_And_Installation_In_Prague read more here] energy effectiveness. Whether it's regimen boiler..."
wikitext
text/x-wiki
Specialist boiler inspection services in Prague make certain gas boilers are actually secure and efficient. Frequent gas boiler evaluation helps spot issues early, decreasing the risk of breakdowns. Gas boiler setup professionals supply trustworthy, skilled installation to guarantee optimal performance and [https://wavedream.wiki/index.php/The_Relevance_Of_Gas_Boiler_Evaluation_And_Installation_In_Prague read more here] energy effectiveness. Whether it's regimen boiler evaluation or a brand new gas boiler setup, these services promise confidence and durable end results.<br><br>Visit my page :: [https://www.adpost4u.com/user/profile/3102274 Read More Here]
040b46f88d67c1b8e6475a092121b2c5267cd520
User:StaciShoemaker9
2
1679
2532
2025-01-05T08:49:09Z
StaciShoemaker9
1866
Created page with "Specialist boiler evaluation services in Prague make sure gas boilers are secure and reliable. Routine gas boiler evaluation helps recognize concerns early, minimizing the threat of malfunctions. Gas boiler setup professionals offer dependable, skilled installation to ensure ideal efficiency and energy effectiveness. Whether it is actually regimen boiler assessment or even a brand new gas boiler setup, these services promise assurance and enduring results.<br><br>Also vi..."
wikitext
text/x-wiki
Specialist boiler evaluation services in Prague make sure gas boilers are secure and reliable. Routine gas boiler evaluation helps recognize concerns early, minimizing the threat of malfunctions. Gas boiler setup professionals offer dependable, skilled installation to ensure ideal efficiency and energy effectiveness. Whether it is actually regimen boiler assessment or even a brand new gas boiler setup, these services promise assurance and enduring results.<br><br>Also visit my webpage - [https://www.tumblr.com/sherronoshea/771464724072333312/revize-plynov%C3%A9ho-kotle-v-praze-a-okol%C3%AD-servis?source=share Visit Here]
4084d8051d33e4012e1d531eff25a1e0cf80908d
User:GwenDuffy19026
2
1680
2533
2025-01-05T11:19:11Z
GwenDuffy19026
1870
Created page with "A lot of savings software outlets give straightforward user interfaces and support services, which can easily additionally enrich your experience. You'll find that the price financial savings commonly trigger improved performance and lessened worry, as you may concentrate on what truly concern- growing your company or accomplishing your projects.<br><br>Feel free to surf to my page :: [https://groovestats.com/index.php?page=profile&id=187211 Websites]"
wikitext
text/x-wiki
A lot of savings software outlets give straightforward user interfaces and support services, which can easily additionally enrich your experience. You'll find that the price financial savings commonly trigger improved performance and lessened worry, as you may concentrate on what truly concern- growing your company or accomplishing your projects.<br><br>Feel free to surf to my page :: [https://groovestats.com/index.php?page=profile&id=187211 Websites]
732b316388511eaa8bfaa6bbebdc72dd50da7ad7
User:Shari95U83943779
2
1681
2534
2025-01-05T11:22:56Z
Shari95U83943779
1871
Created page with "Several rebate software stores supply uncomplicated user interfaces and support services, which may better enrich your experience. You'll find that the cost financial savings often result in boosted efficiency and lessened anxiety, as you may concentrate on what really issue- expanding your business or accomplishing your tasks.<br><br>Feel free to visit my webpage; [https://quicksoftwareapp.amebaownd.com/posts/56019567 Read More Here]"
wikitext
text/x-wiki
Several rebate software stores supply uncomplicated user interfaces and support services, which may better enrich your experience. You'll find that the cost financial savings often result in boosted efficiency and lessened anxiety, as you may concentrate on what really issue- expanding your business or accomplishing your tasks.<br><br>Feel free to visit my webpage; [https://quicksoftwareapp.amebaownd.com/posts/56019567 Read More Here]
53af8332781d521c7e6f448acdab0270c02c160f
User:JulianeArrington
2
1682
2535
2025-01-05T12:13:00Z
JulianeArrington
1873
Created page with "A lot of rebate software application outlets give straightforward interfaces and assistance services, which can further improve your experience. You'll locate that the price savings frequently lead to boosted efficiency and decreased tension, as you can center on what really matters- expanding your business or even accomplishing your projects.<br><br>my web-site - [http://able2know.org/user/CelestedfSerrano/ Going Here]"
wikitext
text/x-wiki
A lot of rebate software application outlets give straightforward interfaces and assistance services, which can further improve your experience. You'll locate that the price savings frequently lead to boosted efficiency and decreased tension, as you can center on what really matters- expanding your business or even accomplishing your projects.<br><br>my web-site - [http://able2know.org/user/CelestedfSerrano/ Going Here]
8ec3e20afa7151ab8ab9b36a612694ef74743e89
User:SallieMccue
2
1683
2536
2025-01-06T11:02:55Z
SallieMccue
1879
Created page with "Solar wholesalers frequently involve in market study to recognize patterns and adjust their providings accordingly. Through remaining informed regarding innovations in sun modern technology, they may introduce extra efficient doors that provide much better market value for money.<br><br>my homepage; [https://git.fuwafuwa.moe/trialyak14 Clicking Here]"
wikitext
text/x-wiki
Solar wholesalers frequently involve in market study to recognize patterns and adjust their providings accordingly. Through remaining informed regarding innovations in sun modern technology, they may introduce extra efficient doors that provide much better market value for money.<br><br>my homepage; [https://git.fuwafuwa.moe/trialyak14 Clicking Here]
2786b6c971837f820074177ec8966df502d8d6b1
User:AudreyCormier4
2
1684
2537
2025-01-07T07:00:51Z
AudreyCormier4
1885
Created page with "Many retailers use special bargains with price cut coupon codes that you will not discover elsewhere. Through staying educated regarding these promos, you access to much better costs and special offers. In a reasonable on-line market, [https://twwrando.com/index.php/User:Alex82U319980 View Our Editors Post] making the most of markdown codes offers you the leverage, allowing you to purchase savvy.<br><br>My webpage [https://uconnect.ae/post/720821_rust-personalizace-naku..."
wikitext
text/x-wiki
Many retailers use special bargains with price cut coupon codes that you will not discover elsewhere. Through staying educated regarding these promos, you access to much better costs and special offers. In a reasonable on-line market, [https://twwrando.com/index.php/User:Alex82U319980 View Our Editors Post] making the most of markdown codes offers you the leverage, allowing you to purchase savvy.<br><br>My webpage [https://uconnect.ae/post/720821_rust-personalizace-nakupni-customizace-je-to-zadne-luxusni-na-internetu-prodej-0.html View Our Editors Post]
74bc8c4973b3e79fdeaac4a36b6ca1b7ae76e7db
User:FranciscoBrunker
2
1685
2538
2025-01-07T10:22:30Z
FranciscoBrunker
1886
Created page with "Numerous merchants use unique deals via discount rate coupon codes that you won't locate in other places. Through remaining educated concerning these promotions, you get to much better prices and special promotions. In a competitive online market, capitalizing on rebate codes offers you the edge, allowing you to go shopping savvy.<br><br>Here is my site ... [https://biodigitalbusiness.wordpress.com/2025/01/06/presne-jak-vyuzit-cashback-a-kupony-vsechny-spolu-pro-ceskou-o..."
wikitext
text/x-wiki
Numerous merchants use unique deals via discount rate coupon codes that you won't locate in other places. Through remaining educated concerning these promotions, you get to much better prices and special promotions. In a competitive online market, capitalizing on rebate codes offers you the edge, allowing you to go shopping savvy.<br><br>Here is my site ... [https://biodigitalbusiness.wordpress.com/2025/01/06/presne-jak-vyuzit-cashback-a-kupony-vsechny-spolu-pro-ceskou-online-nakupy/ Investigate This Site]
73c60062cf031c13d00e26246cdc6c8314d609f4
User:RebeccaStatton1
2
1686
2539
2025-01-07T10:34:46Z
RebeccaStatton1
1888
Created page with "Several retailers supply exclusive deals via discount rate coupon codes that you won't find in other places. By staying updated about these advertisings, you access to far better prices and special deals. In an affordable on-line market, making use of price cut codes provides you the top hand, permitting you to go shopping know-how.<br><br>Also visit my web-site - [https://www.instapaper.com/read/1743861819 Read More From Here]"
wikitext
text/x-wiki
Several retailers supply exclusive deals via discount rate coupon codes that you won't find in other places. By staying updated about these advertisings, you access to far better prices and special deals. In an affordable on-line market, making use of price cut codes provides you the top hand, permitting you to go shopping know-how.<br><br>Also visit my web-site - [https://www.instapaper.com/read/1743861819 Read More From Here]
f2f602c38b5f1212fe94ddc7c9b6ec1728461352
User:WilfordFlanigan
2
1687
2540
2025-01-07T10:37:56Z
WilfordFlanigan
1889
Created page with "A lot of stores deliver special packages with discount rate coupon codes that you won't discover elsewhere. By remaining notified regarding these promos, you get access to far better rates and special deals. In an affordable on the web market, making the most of rebate codes provides you the leverage, allowing you to look around savvy.<br><br>Look into my webpage; [http://www.mohawkradio.com/band_profile.php?bandid=157243 Visit Here]"
wikitext
text/x-wiki
A lot of stores deliver special packages with discount rate coupon codes that you won't discover elsewhere. By remaining notified regarding these promos, you get access to far better rates and special deals. In an affordable on the web market, making the most of rebate codes provides you the leverage, allowing you to look around savvy.<br><br>Look into my webpage; [http://www.mohawkradio.com/band_profile.php?bandid=157243 Visit Here]
8573294ac2dfcedd84980ee9c9be48cbe929e084
User:MonikaFrisby
2
1688
2541
2025-01-08T06:10:33Z
MonikaFrisby
1892
Created page with "Giving premium, bespoke inflight products is essential for boosting the traveler experience. Custom-designed facilities, onboard solutions, and high-end hospitality items assist airline companies distinguish themselves in a significantly open market. Whether it is actually lasting possibilities, luxurious inflight items, or special services customized to a certain airline company's requirements, bespoke inflight items create long lasting opinions for guests. To achieve [..."
wikitext
text/x-wiki
Giving premium, bespoke inflight products is essential for boosting the traveler experience. Custom-designed facilities, onboard solutions, and high-end hospitality items assist airline companies distinguish themselves in a significantly open market. Whether it is actually lasting possibilities, luxurious inflight items, or special services customized to a certain airline company's requirements, bespoke inflight items create long lasting opinions for guests. To achieve [https://anotepad.com/notes/q2atqhn9 Read This Post Here], working together along with experienced airline facility set suppliers and comprehending the necessary functions of bespoke items is actually key.
62ee0c1ce472f3cfe71e1d7553f890cea875683f
User:MadonnaRydge56
2
1689
2542
2025-01-08T07:07:54Z
MadonnaRydge56
1893
Created page with "Pest control experts in Norway deal with house pests along with a combo of identity, environmentally friendly treatments, preventative actions, and expert competence. Whether you're coping with carpenter ant infestations, mice in house, [https://marvelvsdc.faith/wiki/How_Pest_Control_Professionals_In_Norway_Tackle_Common_Home_Pests click this link] or the annoying silverfish, these professionals deliver adapted solutions that safeguard your home and household from unwan..."
wikitext
text/x-wiki
Pest control experts in Norway deal with house pests along with a combo of identity, environmentally friendly treatments, preventative actions, and expert competence. Whether you're coping with carpenter ant infestations, mice in house, [https://marvelvsdc.faith/wiki/How_Pest_Control_Professionals_In_Norway_Tackle_Common_Home_Pests click this link] or the annoying silverfish, these professionals deliver adapted solutions that safeguard your home and household from unwanted enemies. By partnering along with seasoned pest control services, you may guarantee that your home stays a pest-free refuge year-round.<br><br>Check out my web blog - [http://www.bioguiden.se/redirect.aspx?url=https://www.sk1.no/ Click This Link]
0100042d29d0371d7a1744c01537b26bdf6f5f51
User:Allen807435
2
1690
2543
2025-01-08T07:33:42Z
Allen807435
1894
Created page with "Providing top notch, custom inflight products is vital for enhancing the guest experience. Custom-designed features, onboard solutions, and luxury friendliness products aid airlines differentiate themselves in a significantly competitive market. Whether it is actually sustainable possibilities, deluxe inflight items, or even unique services tailored to a particular airline's needs, bespoke inflight products generate enduring impressions for guests. To attain [https://vuf..."
wikitext
text/x-wiki
Providing top notch, custom inflight products is vital for enhancing the guest experience. Custom-designed features, onboard solutions, and luxury friendliness products aid airlines differentiate themselves in a significantly competitive market. Whether it is actually sustainable possibilities, deluxe inflight items, or even unique services tailored to a particular airline's needs, bespoke inflight products generate enduring impressions for guests. To attain [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10162242 Visit This Link], working together with skilled airline company feature package suppliers and recognizing the vital components of bespoke products is key.
79ca805a6996522addd17573654d23c9249d7b53
User:TommySonnier010
2
1691
2544
2025-01-09T06:32:10Z
TommySonnier010
1897
Created page with "Heat pumps service in Norway makes certain optimum performance and energy effectiveness. Specialist specialists take care of whatever from setup to repair and maintenance. Routine repairing of heat pumps assures long-lasting discounts and peak capability. Along with a countrywide system, customers may rely upon immediate, qualified assistance for all their heat pump needs, creating their homes a lot more relaxed and eco-friendly.<br><br>Also visit my site - [https://vuf...."
wikitext
text/x-wiki
Heat pumps service in Norway makes certain optimum performance and energy effectiveness. Specialist specialists take care of whatever from setup to repair and maintenance. Routine repairing of heat pumps assures long-lasting discounts and peak capability. Along with a countrywide system, customers may rely upon immediate, qualified assistance for all their heat pump needs, creating their homes a lot more relaxed and eco-friendly.<br><br>Also visit my site - [https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=10171167 Clicking Here]
d4de2e7b983f69a0a3e1245e6943d86f89de0503
User:JoleneOglesby0
2
1692
2545
2025-01-09T10:58:09Z
JoleneOglesby0
1901
Created page with "If you're wanting to conserve money while still getting high-grade end results, it's time to buy CAD software at an inexpensive rate. Cheap CAD software gives you the adaptability to make sensational designs without cracking the bank. Along with cheap CAD programs, you can easily operate smarter, not harder, taking pleasure in top-tier tools without the sharp cost.<br><br>Look at my blog post - [https://www.pinterest.com/peenstitch3/ Additional Resources]"
wikitext
text/x-wiki
If you're wanting to conserve money while still getting high-grade end results, it's time to buy CAD software at an inexpensive rate. Cheap CAD software gives you the adaptability to make sensational designs without cracking the bank. Along with cheap CAD programs, you can easily operate smarter, not harder, taking pleasure in top-tier tools without the sharp cost.<br><br>Look at my blog post - [https://www.pinterest.com/peenstitch3/ Additional Resources]
05e100580070774226e1e7b50f30a52a95d9ef42
User:DeboraMaughan46
2
1693
2546
2025-01-09T11:13:05Z
DeboraMaughan46
1902
Created page with "Coffee's ability to promote the release of dopamine can raise your state of mind, adding to a total feeling of health. Thus, regardless if you're dealing with a hectic day or getting ready for a workout, coffee can assist you power through. Just bear in mind to appreciate it in small amounts to maximize its advantages without any unwanted jitters.<br><br>Also visit my web-site; [http://promodj.com/jocelynnewashington Visit This Link]"
wikitext
text/x-wiki
Coffee's ability to promote the release of dopamine can raise your state of mind, adding to a total feeling of health. Thus, regardless if you're dealing with a hectic day or getting ready for a workout, coffee can assist you power through. Just bear in mind to appreciate it in small amounts to maximize its advantages without any unwanted jitters.<br><br>Also visit my web-site; [http://promodj.com/jocelynnewashington Visit This Link]
9897da2d2d2c66b9452b268ff83772c1cacd71c5
User:BennettSimpkinso
2
1694
2547
2025-01-11T07:08:55Z
BennettSimpkinso
1904
Created page with "By focusing on entrepreneurship learning, you're not merely prepping on your own for individual effectiveness; you're also adding to more comprehensive social improvement. The significance of the education stretches beyond specific gains and plays a main task in molding blooming neighborhoods and countries.<br><br>Feel free to surf to my web-site [https://www.instapaper.com/read/1744531291 See Details]"
wikitext
text/x-wiki
By focusing on entrepreneurship learning, you're not merely prepping on your own for individual effectiveness; you're also adding to more comprehensive social improvement. The significance of the education stretches beyond specific gains and plays a main task in molding blooming neighborhoods and countries.<br><br>Feel free to surf to my web-site [https://www.instapaper.com/read/1744531291 See Details]
d923e2908c6937eb7290677414626c1e32ba0729
User:BrennaCantrell6
2
1695
2548
2025-01-12T03:56:30Z
BrennaCantrell6
1905
Created page with "Shingwanggyo Cloud City in South Korea gives innovative, premium work areas developed for partnership and development. With advanced infrastructure and seamless connectivity, Shingwanggyo Cloud City fosters a compelling business atmosphere. [https://share.evernote.com/note/0aafaab9-70eb-b8b7-e6e0-6f01712d8082 This Article] completely included center is perfect for businesses seeking to prosper in a sophisticated environment, [https://wiki.dulovic.tech/index.php/Shingwan..."
wikitext
text/x-wiki
Shingwanggyo Cloud City in South Korea gives innovative, premium work areas developed for partnership and development. With advanced infrastructure and seamless connectivity, Shingwanggyo Cloud City fosters a compelling business atmosphere. [https://share.evernote.com/note/0aafaab9-70eb-b8b7-e6e0-6f01712d8082 This Article] completely included center is perfect for businesses seeking to prosper in a sophisticated environment, [https://wiki.dulovic.tech/index.php/Shingwanggyo_Cloud_City_In_South_Korea:_The_Best_Work_Area_For_Modern_Professionals This Article] giving premium services and a community-driven environment.
d34d6545f9d82c61fa80e629d057659af9946eb3
User:PatHargis25
2
1696
2549
2025-01-14T04:33:14Z
PatHargis25
1909
Created page with "Expert small company bookkeeping services in Waterbury assistance enhance monetary monitoring. With outsourced bookkeeping services, businesses have precise monetary records and [https://disgaeawiki.info/index.php/User:KeriCollings711 e828750] reconciliation services. They likewise profit from bookkeeping with QuickBooks, which simplifies day-to-day purchases. Whether it's bookkeeping for startups or payroll management services, these budget friendly solutions enable bu..."
wikitext
text/x-wiki
Expert small company bookkeeping services in Waterbury assistance enhance monetary monitoring. With outsourced bookkeeping services, businesses have precise monetary records and [https://disgaeawiki.info/index.php/User:KeriCollings711 e828750] reconciliation services. They likewise profit from bookkeeping with QuickBooks, which simplifies day-to-day purchases. Whether it's bookkeeping for startups or payroll management services, these budget friendly solutions enable businesses to concentrate on growth.<br><br>Check out my page - [https://ourdoings.com/abagailaguirre/2025-01-10 e828750]
687e49332cf8b01d90e165e9b198c11e17066099
User:RubyeStinnett6
2
1697
2550
2025-01-14T04:47:03Z
RubyeStinnett6
1911
Created page with "Qualified small company bookkeeping services in Waterbury support enhance economic monitoring. With outsourced bookkeeping services, businesses take advantage of correct monetary reports and reconciliation services. They additionally profit from bookkeeping with QuickBooks, which simplifies daily purchases. Whether it is actually bookkeeping for startups or [https://fakenews.win/wiki/User:WilbertR21 Article Source] even payroll management services, these cost effective..."
wikitext
text/x-wiki
Qualified small company bookkeeping services in Waterbury support enhance economic monitoring. With outsourced bookkeeping services, businesses take advantage of correct monetary reports and reconciliation services. They additionally profit from bookkeeping with QuickBooks, which simplifies daily purchases. Whether it is actually bookkeeping for startups or [https://fakenews.win/wiki/User:WilbertR21 Article Source] even payroll management services, these cost effective solutions enable businesses to concentrate on development.<br><br>Here is my web-site; [https://electricidadyalgomaspr.weebly.com/home/what-to-get-out-of-qualified-bookkeeping-services-in-waterbury Article Source]
a7372e9a6b96dd4099de3c456acf45853b2377a5
User:DaniCarmichael
2
1698
2551
2025-01-14T05:32:47Z
DaniCarmichael
1912
Created page with "Professional small company bookkeeping services in Waterbury assistance streamline monetary control. Along with outsourced bookkeeping services, businesses have accurate economic files and reconciliation services. They also take advantage of bookkeeping with QuickBooks, which streamlines daily transactions. Whether it is actually bookkeeping for startups or even payroll management services, these inexpensive solutions allow businesses to concentrate on growth.<br><br>Als..."
wikitext
text/x-wiki
Professional small company bookkeeping services in Waterbury assistance streamline monetary control. Along with outsourced bookkeeping services, businesses have accurate economic files and reconciliation services. They also take advantage of bookkeeping with QuickBooks, which streamlines daily transactions. Whether it is actually bookkeeping for startups or even payroll management services, these inexpensive solutions allow businesses to concentrate on growth.<br><br>Also visit my site ... [https://www.onfeetnation.com/profiles/blogs/how-choosing-an-accountant-in-waterbury-ct-can-improve-your?xg_source=activity Read More Here]
333d63282cf3d7a36e2191785b6b4f4930397527
User:Shaun111820
2
1699
2552
2025-01-14T06:03:44Z
Shaun111820
1913
Created page with "The task of security video cameras in improving public safety and security may certainly not be actually overemphasized. From preventing criminal offense to providing real-time tracking, their applications are substantial and impactful. Technological developments, such as motion sensor security cameras, solar powered outdoor security video cameras, and smart home surveillance cameras, remain to make monitoring [https://rumble.com/v68w3xy-budget-friendly-security-cameras-..."
wikitext
text/x-wiki
The task of security video cameras in improving public safety and security may certainly not be actually overemphasized. From preventing criminal offense to providing real-time tracking, their applications are substantial and impactful. Technological developments, such as motion sensor security cameras, solar powered outdoor security video cameras, and smart home surveillance cameras, remain to make monitoring [https://rumble.com/v68w3xy-budget-friendly-security-cameras-for-every-single-demand.html Find More About This] helpful and easily accessible. Whether in urban facilities, rural places, homes, or businesses, these systems are actually essential tools for creating safer environments.
9a1c31a1e6f40e0428b6008d741f081859feca6d
User:Dana92F4533847
2
1700
2553
2025-01-14T07:17:14Z
Dana92F4533847
1917
Created page with "Owning a residence at Roswalt Zyon Oshiwara assures higher returns as a result of to its premium location in Mumbai. This project uses present day features, roomy 4 BHK condos, and awesome connection. The well-designed Roswalt Zyon floor plan accommodates luxurious living, producing it best for those finding comfort and sophistication. For more particulars, look into the Roswalt Zyon brochure and contact info.<br><br>My web-site; [https://flipboard.com/@cletusmcvey/look-..."
wikitext
text/x-wiki
Owning a residence at Roswalt Zyon Oshiwara assures higher returns as a result of to its premium location in Mumbai. This project uses present day features, roomy 4 BHK condos, and awesome connection. The well-designed Roswalt Zyon floor plan accommodates luxurious living, producing it best for those finding comfort and sophistication. For more particulars, look into the Roswalt Zyon brochure and contact info.<br><br>My web-site; [https://flipboard.com/@cletusmcvey/look-into-roswalt-zyon-jogeshwari-west-6aelqofry Going Here]
405f24032bd54f326ed58ff6fff8e6c79aa3147a
User:MadgeWoolnough
2
1701
2554
2025-01-14T08:24:43Z
MadgeWoolnough
1919
Created page with "The increase of accounting and audit firms in the UAE's business community mirrors the developing complexity of the financial globe and the nation's emergence as a global business forerunner. Audit company in UAE, tax consultancy organization in UAE, and bookkeeping organization in UAE services carry on to support businesses in their experience in the direction of conformity, growth, and durability. As businesses in the UAE remain to prosper, companies like JAXA Chartere..."
wikitext
text/x-wiki
The increase of accounting and audit firms in the UAE's business community mirrors the developing complexity of the financial globe and the nation's emergence as a global business forerunner. Audit company in UAE, tax consultancy organization in UAE, and bookkeeping organization in UAE services carry on to support businesses in their experience in the direction of conformity, growth, and durability. As businesses in the UAE remain to prosper, companies like JAXA Chartered Accountants, along with their experience and worldwide presence, will definitely stay vital partners in browsing the monetary challenges of the future.<br><br>my blog: [https://www.tumblr.com/sybilandbranson/772552044997427200/why-your-business-demands-an-accounting-and-audit?source=share Clicking Here]
2f66e671c4e908bb0009a4b703bca9c5dd3164bf
User:JoesphSharp286
2
1702
2555
2025-01-14T12:12:11Z
JoesphSharp286
1921
Created page with "Top notch parts provide the required strength and resilience, eventually contributing to better efficiency. Routine maintenance and gradation of these types of assistances guarantee they operate at peak performance, decreasing the danger of mistakes throughout procedures.<br><br>my blog - [https://vnseo.edu.vn/members/ferrymap4.195354.html Discover More]"
wikitext
text/x-wiki
Top notch parts provide the required strength and resilience, eventually contributing to better efficiency. Routine maintenance and gradation of these types of assistances guarantee they operate at peak performance, decreasing the danger of mistakes throughout procedures.<br><br>my blog - [https://vnseo.edu.vn/members/ferrymap4.195354.html Discover More]
0e498ecb96ef547ad2bf7abeae024f60104f12c7
User:DulcieCarrasco
2
1703
2556
2025-01-14T12:14:26Z
DulcieCarrasco
1922
Created page with "High-grade elements provide the necessary rigidness and toughness, eventually contributing to much better performance. Routine upkeep and gradation of these kinds of supports assure they work at peak effectiveness, reducing the danger of mistakes throughout operations.<br><br>Look at my website :: [https://www.tumblr.com/clairepeterson5581/772437245058809856/typische-schwierigkeiten-behandelt-durch-die?source=share Know More]"
wikitext
text/x-wiki
High-grade elements provide the necessary rigidness and toughness, eventually contributing to much better performance. Routine upkeep and gradation of these kinds of supports assure they work at peak effectiveness, reducing the danger of mistakes throughout operations.<br><br>Look at my website :: [https://www.tumblr.com/clairepeterson5581/772437245058809856/typische-schwierigkeiten-behandelt-durch-die?source=share Know More]
9f90e7bf7e84b41b88e5832b999febac4b4eca61
User:CarolCase4699
2
1704
2557
2025-01-14T12:21:18Z
CarolCase4699
1923
Created page with "Always clear up the gas policy when reserving and inspect the fuel scale at pick-up before renting vehicle in UK. Understanding these options warranties you won't be captured off guard and can help you stay clear of unforeseen charges.<br><br>my page; [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1541208 Additional Resources]"
wikitext
text/x-wiki
Always clear up the gas policy when reserving and inspect the fuel scale at pick-up before renting vehicle in UK. Understanding these options warranties you won't be captured off guard and can help you stay clear of unforeseen charges.<br><br>my page; [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1541208 Additional Resources]
691059d761d181bd53e6d499f92365b90c2023e6
User:AntonioSher3994
2
1705
2558
2025-01-14T12:31:41Z
AntonioSher3994
1924
Created page with "Constantly make clear the gas policy when scheduling and inspect the gas gauge at pickup prior to renting out car in UK. Comprehending these alternatives guarantees you will not be captured off guard and can help you avoid unanticipated costs.<br><br>Also visit my homepage; [https://papaly.com/categories/share?id=7616f53eba504c04a2d6fda6384e9a27 Clicking Here]"
wikitext
text/x-wiki
Constantly make clear the gas policy when scheduling and inspect the gas gauge at pickup prior to renting out car in UK. Comprehending these alternatives guarantees you will not be captured off guard and can help you avoid unanticipated costs.<br><br>Also visit my homepage; [https://papaly.com/categories/share?id=7616f53eba504c04a2d6fda6384e9a27 Clicking Here]
7e849761c59d2517196d26683cab7f62568d4e0a
User:JamelRickard386
2
1706
2559
2025-01-14T12:37:18Z
JamelRickard386
1925
Created page with "Always clear up the fuel plan when booking and evaluate the fuel gauge at pickup before renting auto in UK. Comprehending these choices guarantees you won't be captured off guard and can aid you prevent unanticipated fees.<br><br>My blog post; [https://ourdoings.com/unlisted/pd6nqve7/2025-01-08 e828747]"
wikitext
text/x-wiki
Always clear up the fuel plan when booking and evaluate the fuel gauge at pickup before renting auto in UK. Comprehending these choices guarantees you won't be captured off guard and can aid you prevent unanticipated fees.<br><br>My blog post; [https://ourdoings.com/unlisted/pd6nqve7/2025-01-08 e828747]
08c82d2764ecc5b3a1895bb57ef1a8a95291559a
User:DesireeBreillat
2
1707
2560
2025-01-14T12:44:57Z
DesireeBreillat
1926
Created page with "Constantly clarify the gas plan when reserving and examine the gas scale at pick-up before leasing auto in UK. Comprehending these options warranties you won't be captured unsuspecting and can assist you prevent unforeseen charges.<br><br>My site; [https://anotepad.com/notes/bdm4spm7 Websites]"
wikitext
text/x-wiki
Constantly clarify the gas plan when reserving and examine the gas scale at pick-up before leasing auto in UK. Comprehending these options warranties you won't be captured unsuspecting and can assist you prevent unforeseen charges.<br><br>My site; [https://anotepad.com/notes/bdm4spm7 Websites]
df644ebc931b3142d113d568dfd9a8eb9908320d
User:Charles8767
2
1708
2561
2025-01-18T03:55:49Z
Charles8767
1928
Created page with "Employing the best concrete service provider is essential for [https://drapia.org/11-WIKI/index.php/User:ReginaShipley Discover More Here] sensational, resilient end results. For experienced workmanship in stamped concrete Denver, The Concrete Company is the absolute best selection. Known for professionalism and reliability and extraordinary job, they stand apart with concrete companies Denver. Select them for sturdy, elegant projects that improve your residential prope..."
wikitext
text/x-wiki
Employing the best concrete service provider is essential for [https://drapia.org/11-WIKI/index.php/User:ReginaShipley Discover More Here] sensational, resilient end results. For experienced workmanship in stamped concrete Denver, The Concrete Company is the absolute best selection. Known for professionalism and reliability and extraordinary job, they stand apart with concrete companies Denver. Select them for sturdy, elegant projects that improve your residential property.<br><br>Feel free to visit my blog post; [https://dailycontractornews.wordpress.com/ Discover More Here]
737555d7fe86b8ea7935e3d430b24dda64a88c6e
User:WesleyFaulding9
2
1709
2562
2025-01-18T03:59:11Z
WesleyFaulding9
1929
Created page with "Choosing the best concrete professional is actually important for spectacular, resilient results. For professional workmanship in stamped concrete Denver, The Concrete Company is the most effective option. Understood for professionalism and trust and exceptional work, they stand apart amongst concrete companies Denver. Choose them for long lasting, exquisite jobs that boost [https://dailycontractornews.wordpress.com/2025/01/15/the-ultimate-guide-to-choosing-a-concrete-co..."
wikitext
text/x-wiki
Choosing the best concrete professional is actually important for spectacular, resilient results. For professional workmanship in stamped concrete Denver, The Concrete Company is the most effective option. Understood for professionalism and trust and exceptional work, they stand apart amongst concrete companies Denver. Choose them for long lasting, exquisite jobs that boost [https://dailycontractornews.wordpress.com/2025/01/15/the-ultimate-guide-to-choosing-a-concrete-contractor-in-denver/ Get Idea About Your Bit] property.
e114321999e53bd8d61c42f74d9472cb3a2d468a
User:WilbertPainter7
2
1710
2563
2025-01-19T06:12:23Z
WilbertPainter7
1931
Created page with "Tapping the services of expert kitchen builders and washroom designers in Sydney, Australia makes sure smooth kitchen remodel and bathroom renovation jobs. Seasoned professionals supply high-grade kitchen design and bathroom design modified to clients' requirements. Whether it is actually a small bathroom renovation or even a total bathroom remodel, these skillful professionals take transformative layouts to every home makeover.<br><br>My webpage - [https://technologyrhi..."
wikitext
text/x-wiki
Tapping the services of expert kitchen builders and washroom designers in Sydney, Australia makes sure smooth kitchen remodel and bathroom renovation jobs. Seasoned professionals supply high-grade kitchen design and bathroom design modified to clients' requirements. Whether it is actually a small bathroom renovation or even a total bathroom remodel, these skillful professionals take transformative layouts to every home makeover.<br><br>My webpage - [https://technologyrhino.mystrikingly.com/blog/the-importance-of-professional-cooking-area-and-bathroom-redesigns-in-sydney Visit Here]
9e353a8adc906d5bcc72bb376c64ba454fd65434
User:BrennaWolinski0
2
1711
2564
2025-01-19T09:44:07Z
BrennaWolinski0
1933
Created page with "Robust design of hydraulic steady relaxes guarantees that they may tolerate the powers generated in the course of fast machining, preserving their grip under vibrant conditions. This stability not only boosts the surface finish of the machined parts yet likewise prolongs resource life, decreasing the demand for frequent substitutes.<br><br>Also visit my website - [https://jonasmcarthur.dropmark.com/1846153/35625957 View Source]"
wikitext
text/x-wiki
Robust design of hydraulic steady relaxes guarantees that they may tolerate the powers generated in the course of fast machining, preserving their grip under vibrant conditions. This stability not only boosts the surface finish of the machined parts yet likewise prolongs resource life, decreasing the demand for frequent substitutes.<br><br>Also visit my website - [https://jonasmcarthur.dropmark.com/1846153/35625957 View Source]
74e1412628ee0d1a9327f5fa3178520718f77a22
User:EzekielWoodfull
2
1712
2565
2025-01-19T09:49:30Z
EzekielWoodfull
1934
Created page with "Robust design of gas consistent relaxes warranties that they can easily endure the pressures created during the course of high-speed machining, sustaining their grasp under powerful situations. This reliability not just improves the surface area appearance of the machined parts but additionally extends resource lifestyle, lowering the need for regular replacements.<br><br>Take a look at my web page: [https://webhitlist.com/profiles/blogs/impresionante-atributos-de-auto-c..."
wikitext
text/x-wiki
Robust design of gas consistent relaxes warranties that they can easily endure the pressures created during the course of high-speed machining, sustaining their grasp under powerful situations. This reliability not just improves the surface area appearance of the machined parts but additionally extends resource lifestyle, lowering the need for regular replacements.<br><br>Take a look at my web page: [https://webhitlist.com/profiles/blogs/impresionante-atributos-de-auto-centrado-hidr-ulico-constante-y Available Here]
c617ca6592b313a4d43ed6ebb43f7654cdf013e0
User:MerriForte874
2
1713
2566
2025-01-19T09:55:47Z
MerriForte874
1935
Created page with "Strong design of gas consistent rests promises that they can easily withstand the forces created during high-speed machining, keeping their grasp under dynamic conditions. This reliability not only enhances the area finish of the machined parts but also extends device lifestyle, lessening the requirement for frequent replacements.<br><br>my web-site - [https://git.fuwafuwa.moe/selectsilk7 Read More From Here]"
wikitext
text/x-wiki
Strong design of gas consistent rests promises that they can easily withstand the forces created during high-speed machining, keeping their grasp under dynamic conditions. This reliability not only enhances the area finish of the machined parts but also extends device lifestyle, lessening the requirement for frequent replacements.<br><br>my web-site - [https://git.fuwafuwa.moe/selectsilk7 Read More From Here]
efeae12f915a9d63f9d7ec1be756967d7d3b111b
User:EllisMelba0699
2
1714
2567
2025-01-19T09:59:52Z
EllisMelba0699
1938
Created page with "Strong design of hydraulic stable rests warranties that they can tolerate the pressures generated throughout high-speed machining, preserving their grip under dynamic conditions. This security certainly not only improves the surface area coating of the machined components yet also extends device lifestyle, decreasing the requirement for frequent replacements.<br><br>my page ... [https://electricidadyalgomaspr.weebly.com/home/principales-razones-a-elegir-auto-centrado-hid..."
wikitext
text/x-wiki
Strong design of hydraulic stable rests warranties that they can tolerate the pressures generated throughout high-speed machining, preserving their grip under dynamic conditions. This security certainly not only improves the surface area coating of the machined components yet also extends device lifestyle, decreasing the requirement for frequent replacements.<br><br>my page ... [https://electricidadyalgomaspr.weebly.com/home/principales-razones-a-elegir-auto-centrado-hidraulico-constante-y-estable-descansa-para-su-mecanizado-requerimientos Get More Info]
ff767ccebeca2abf1d4208f2aa1e6174c8afa1f6
User:LenardBourgeois
2
1715
2568
2025-01-19T10:03:28Z
LenardBourgeois
1937
Created page with "Chartered accountants in England play an essential duty in the audit preparation method for business. By guaranteeing conformity along with legal criteria, managing economic documents, and carrying out complete pre-audit testimonials, these specialists relieve potential inconsistencies and enrich monetary integrity. The on-going assistance and adapted advice supplied through chartered accountants promote a deeper understanding of sophisticated policies, essentially insti..."
wikitext
text/x-wiki
Chartered accountants in England play an essential duty in the audit preparation method for business. By guaranteeing conformity along with legal criteria, managing economic documents, and carrying out complete pre-audit testimonials, these specialists relieve potential inconsistencies and enrich monetary integrity. The on-going assistance and adapted advice supplied through chartered accountants promote a deeper understanding of sophisticated policies, essentially instilling confidence amongst stakeholders. Their competence not simply simplifies review however also adds substantially to the general financial health and wellness of small enterprises.<br><br>My blog [https://reviewsandco.blogspot.com/2025/01/important-attributes-to-try-to-find-in.html Investigate This Site]
e49b111acaeab2f4eed49b0ea4181b2f4eccdc80
User:LasonyaKean8967
2
1716
2569
2025-01-19T10:04:18Z
LasonyaKean8967
1939
Created page with "Chartered accountants in England play a crucial task in the audit planning procedure for little businesses. By making sure observance along with lawful specifications, arranging financial reports, and performing thorough pre-audit evaluations, these professionals mitigate possible differences and boost economic honesty. The continuous help and adapted direction provided through chartered accountants cultivate a deeper understanding of complex rules, inevitably instilling..."
wikitext
text/x-wiki
Chartered accountants in England play a crucial task in the audit planning procedure for little businesses. By making sure observance along with lawful specifications, arranging financial reports, and performing thorough pre-audit evaluations, these professionals mitigate possible differences and boost economic honesty. The continuous help and adapted direction provided through chartered accountants cultivate a deeper understanding of complex rules, inevitably instilling peace of mind one of stakeholders. Their experience not merely simplifies review yet additionally adds substantially to the general economic health and wellness of little ventures.<br><br>My site: [https://www.storeboard.com/noahperkins/images/employ-an-accounting-professional-in-england/1112651 Available Here]
a825cb565b01bafb3562d0fb568dd7604632cfb6
User:EmeryBrack13
2
1717
2570
2025-01-19T10:48:35Z
EmeryBrack13
1940
Created page with "Chartered accountants in England play an indispensable job in the review planning procedure for local business. By making certain observance with lawful criteria, coordinating financial reports, and [https://the07k.wiki/index.php?title=User:ArnoldoE72 Learn More Here] performing comprehensive pre-audit testimonials, these experts mitigate potential inconsistencies and enrich monetary integrity. The on-going help and tailored assistance offered by chartered accountants e..."
wikitext
text/x-wiki
Chartered accountants in England play an indispensable job in the review planning procedure for local business. By making certain observance with lawful criteria, coordinating financial reports, and [https://the07k.wiki/index.php?title=User:ArnoldoE72 Learn More Here] performing comprehensive pre-audit testimonials, these experts mitigate potential inconsistencies and enrich monetary integrity. The on-going help and tailored assistance offered by chartered accountants encourage a much deeper understanding of sophisticated policies, eventually instilling peace of mind among stakeholders. Their knowledge not merely simplifies analysis however additionally provides notably to the overall monetary wellness of small ventures.<br><br>My site :: [https://telegra.ph/When-to-Tap-The-Services-Of-a-Chartered-Accounting-Professional-in-England-for-Your-Business-01-12 Learn More Here]
b49031aa4a9df92e9b2f88187e320d21b7dd8247
User:JeannineClaborn
2
1718
2571
2025-01-21T09:32:25Z
JeannineClaborn
1943
Created page with "Obtaining the best look demands the best beard grooming leaner and finest clippers for beard. Men may enjoy a pointy look with fade reducing hairstyle alternatives like crew cut fade hairstyle or even undercut hairstyle man. Beard concepts for guys like goatee and beard or face strap beards lift any style, making sure impeccable men's grooming.<br><br>my website: [https://spoonacular.com/profile/sariahekeller/ Read My Reviews Here]"
wikitext
text/x-wiki
Obtaining the best look demands the best beard grooming leaner and finest clippers for beard. Men may enjoy a pointy look with fade reducing hairstyle alternatives like crew cut fade hairstyle or even undercut hairstyle man. Beard concepts for guys like goatee and beard or face strap beards lift any style, making sure impeccable men's grooming.<br><br>my website: [https://spoonacular.com/profile/sariahekeller/ Read My Reviews Here]
bcc9d7fb5db72ae4f4e5e80ea370a7b3e1c387c4
User:MarkMarroquin
2
1719
2572
2025-01-21T09:49:27Z
MarkMarroquin
1944
Created page with "A dependable Strong Password Generator guarantees first-class safety by using an user-friendly method to generate strong password mixtures. This password generator supplies users with a random password generator that generates extremely safe, unique passwords. By utilizing this tool, people can effectively generate strong password security for their on the web information and [https://wolvesbaneuo.com/wiki/index.php/User:Leilani15K View Source] accounts, safeguarding th..."
wikitext
text/x-wiki
A dependable Strong Password Generator guarantees first-class safety by using an user-friendly method to generate strong password mixtures. This password generator supplies users with a random password generator that generates extremely safe, unique passwords. By utilizing this tool, people can effectively generate strong password security for their on the web information and [https://wolvesbaneuo.com/wiki/index.php/User:Leilani15K View Source] accounts, safeguarding them from cyber risks.<br><br>Take a look at my blog ... [https://www.quora.com/What-is-the-best-password-generator/answer/Brayan-Maddox View Source]
0dfc34a70b714e02e0e98e5ec978fa12d2657d0c
User:IVNInes379502
2
1720
2573
2025-01-21T09:52:31Z
IVNInes379502
1945
Created page with "Obtaining the excellent look needs the right beard grooming trimmer and absolute best clippers for beard. Men may enjoy a pointy appeal along with fade cutting hairdo possibilities like crew cut fade hairstyle or [https://biipsl.shoutwiki.com/wiki/The_Expanding_Trend_Of_Maintainable_Grooming_Items_For_Men going here] even undercut haircut man. Beard styles for men like goatee and beard or even chin band beards elevate any sort of design, ensuring exquisite men's groomin..."
wikitext
text/x-wiki
Obtaining the excellent look needs the right beard grooming trimmer and absolute best clippers for beard. Men may enjoy a pointy appeal along with fade cutting hairdo possibilities like crew cut fade hairstyle or [https://biipsl.shoutwiki.com/wiki/The_Expanding_Trend_Of_Maintainable_Grooming_Items_For_Men going here] even undercut haircut man. Beard styles for men like goatee and beard or even chin band beards elevate any sort of design, ensuring exquisite men's grooming.<br><br>Here is my homepage; [https://pgminisci910.weebly.com/home/the-function-of-beard-oils-in-hair-and-beard-care-items-for-mens-grooming Going Here]
76d941a1291edf399cb9664392b0d708b435a8d9
User:ElkeBuvelot373
2
1721
2574
2025-01-21T09:55:02Z
ElkeBuvelot373
1946
Created page with "Achieving the best fade reducing hairstyle or even undercut haircut guy calls for quality products. Beard grooming leaner and ideal clippers for beard help make pointy beard styles guys, whether for a goatee and beard combo or chin strap beards. Along with the best hair clipper shields, guys can easily keep their men's guy bun or hair bun for guys effortlessly.<br><br>my web page ... [https://gettr.com/post/p3fz47j7ebd Click Here]"
wikitext
text/x-wiki
Achieving the best fade reducing hairstyle or even undercut haircut guy calls for quality products. Beard grooming leaner and ideal clippers for beard help make pointy beard styles guys, whether for a goatee and beard combo or chin strap beards. Along with the best hair clipper shields, guys can easily keep their men's guy bun or hair bun for guys effortlessly.<br><br>my web page ... [https://gettr.com/post/p3fz47j7ebd Click Here]
f3902c38e7479e2178634b49718562c045dd79d4
User:HungKillinger
2
1722
2575
2025-01-21T10:08:27Z
HungKillinger
1949
Created page with "A dependable Strong Password Generator guarantees high-level security through supplying an user-friendly technique to generate strong password mixtures. This password generator [http://bwiki.dirkmeyer.info/index.php?title=Benutzer:MartaMark26136 Click Here] delivers users along with a random password generator that produces strongly safe, special passwords. By utilizing this tool, individuals can very easily generate strong password protection for their on the internet..."
wikitext
text/x-wiki
A dependable Strong Password Generator guarantees high-level security through supplying an user-friendly technique to generate strong password mixtures. This password generator [http://bwiki.dirkmeyer.info/index.php?title=Benutzer:MartaMark26136 Click Here] delivers users along with a random password generator that produces strongly safe, special passwords. By utilizing this tool, individuals can very easily generate strong password protection for their on the internet information and accounts, securing all of them from cyber risks.<br><br>Also visit my website; [https://medium.com/@JayceJones/how-an-online-password-generator-can-help-improve-your-digital-security-e5545cf9ac17 Click Here]
83cedaa423d4e6147d3779a0f6c6de3fdbd9255f
User:ShaynaCoffill1
2
1723
2576
2025-01-21T10:21:11Z
ShaynaCoffill1
1950
Created page with "Attaining the excellent fade reducing hairstyle or undercut hairstyle male needs quality products. Beard grooming trimmer and absolute best clippers for beard help produce pointy beard concepts males, whether for a goatee and beard combo or even face band beards. Along with the appropriate hair clipper shields, [https://disgaeawiki.info/index.php/User:HarriettMathew2 Read More From Here] guys can sustain their men's man bun or hair bun for men easily.<br><br>Take a look..."
wikitext
text/x-wiki
Attaining the excellent fade reducing hairstyle or undercut hairstyle male needs quality products. Beard grooming trimmer and absolute best clippers for beard help produce pointy beard concepts males, whether for a goatee and beard combo or even face band beards. Along with the appropriate hair clipper shields, [https://disgaeawiki.info/index.php/User:HarriettMathew2 Read More From Here] guys can sustain their men's man bun or hair bun for men easily.<br><br>Take a look at my homepage [https://www.ethicalhacker.net/members/josheshort/profile/ Read More From Here]
04fc8dd4a24704d369b38c4992a37cea1a890823
User:WilburnCapra16
2
1724
2577
2025-01-21T10:30:49Z
WilburnCapra16
1951
Created page with "The Strong Password Generator is a highly effective tool made to assist users produce powerful passwords effortlessly. This random password generator provides adjustable alternatives, enabling users to create distinct and secure passwords. Using this password generator strong in security, users may effortlessly generate solid passwords to defend their on the web accounts from prospective risks.<br><br>Stop by my web page :: [https://www.tumblr.com/darkette/77117361966666..."
wikitext
text/x-wiki
The Strong Password Generator is a highly effective tool made to assist users produce powerful passwords effortlessly. This random password generator provides adjustable alternatives, enabling users to create distinct and secure passwords. Using this password generator strong in security, users may effortlessly generate solid passwords to defend their on the web accounts from prospective risks.<br><br>Stop by my web page :: [https://www.tumblr.com/darkette/771173619666665473/why-a-complex-password-generator-is-your-best?source=share Visit Here]
63be2747c67baa8ad8fc70bdd6bb986075c78eac
User:KelleyUuz23112
2
1725
2578
2025-01-22T06:40:50Z
KelleyUuz23112
1952
Created page with "KMS Auto Net activator is the best solution for activating Windows and Office without the requirement for costly licenses. Along with assistance for KMSAuto Windows 10, KMSAuto Windows 11, and other models, [https://pgminisci910.weebly.com/home/what-is-kmsauto-activator-and-how-does-it-function Investigate This Site] tool is largely made use of in nations like Ukraine, Russia, Indonesia, and Mexico. KMS Auto tool is actually trusted for seamless activation and performanc..."
wikitext
text/x-wiki
KMS Auto Net activator is the best solution for activating Windows and Office without the requirement for costly licenses. Along with assistance for KMSAuto Windows 10, KMSAuto Windows 11, and other models, [https://pgminisci910.weebly.com/home/what-is-kmsauto-activator-and-how-does-it-function Investigate This Site] tool is largely made use of in nations like Ukraine, Russia, Indonesia, and Mexico. KMS Auto tool is actually trusted for seamless activation and performance. Download KMSAuto activator for a life-time activation experience.
add56e32130db61f508b7e0f479b58930b953364
User:ChelseaUqa
2
1726
2579
2025-01-22T06:45:43Z
ChelseaUqa
1953
Created page with "Achieving the excellent look requires the best beard grooming leaner and absolute best clippers for beard. Men can enjoy a sharp appeal with fade cutting hairdo possibilities like crew cut fade hairstyle or even undercut haircut man. Beard designs for guys like goatee and beard or jaw strap beards increase any design, guaranteeing impeccable men's grooming.<br><br>my web site - [http://able2know.org/user/gabrielechapman/ Discover More]"
wikitext
text/x-wiki
Achieving the excellent look requires the best beard grooming leaner and absolute best clippers for beard. Men can enjoy a sharp appeal with fade cutting hairdo possibilities like crew cut fade hairstyle or even undercut haircut man. Beard designs for guys like goatee and beard or jaw strap beards increase any design, guaranteeing impeccable men's grooming.<br><br>my web site - [http://able2know.org/user/gabrielechapman/ Discover More]
227e84feef6beb2e275113867c14e4415800f46f
User:VEHGilberto
2
1727
2580
2025-01-22T06:59:30Z
VEHGilberto
1955
Created page with "KMS Auto net activator is actually a depended on tool utilized worldwide, featuring in Ukraine, Russia, and Indonesia, for activating Windows and Office software program. With KMSAuto activator, users can conveniently activate their systems, featuring KMSAuto Windows 11 and KMSAuto Windows 10, without the demand for official secrets. KMS Auto download offers simple access to this dependable program, sparing each money and time.<br><br>Here is my blog; [https://www.tumblr..."
wikitext
text/x-wiki
KMS Auto net activator is actually a depended on tool utilized worldwide, featuring in Ukraine, Russia, and Indonesia, for activating Windows and Office software program. With KMSAuto activator, users can conveniently activate their systems, featuring KMSAuto Windows 11 and KMSAuto Windows 10, without the demand for official secrets. KMS Auto download offers simple access to this dependable program, sparing each money and time.<br><br>Here is my blog; [https://www.tumblr.com/catarinalee-sfpc/771173223735934976/how-using-a-super-strong-password-generator?source=share Visit Website]
347bd33702895571b03eac6d24ff54b97df37aed
User:MillieCourtois
2
1728
2581
2025-01-23T05:19:55Z
MillieCourtois
1957
Created page with "Expert licensed operators deal with the driving, enabling you to unwind or plan for your day in advance. And also, the amenities supplied-- like free of charge refreshments and advanced booking alternatives-- elevate your traveling experience, making it genuinely remarkable.<br><br>Here is my website; [https://ucgp.jujuy.edu.ar/profile/quilladult5/ See Our Website]"
wikitext
text/x-wiki
Expert licensed operators deal with the driving, enabling you to unwind or plan for your day in advance. And also, the amenities supplied-- like free of charge refreshments and advanced booking alternatives-- elevate your traveling experience, making it genuinely remarkable.<br><br>Here is my website; [https://ucgp.jujuy.edu.ar/profile/quilladult5/ See Our Website]
4b5613ecc64c715f24a01448529bc89937a87a08
User:MillieMcIlveen2
2
1729
2582
2025-01-23T05:19:57Z
MillieMcIlveen2
1959
Created page with "Professional chauffeurs handle the driving, allowing you to loosen up or plan for your day in advance. And also, the amenities given-- like free drinks and progressed reserving choices-- raise your traveling experience, making it genuinely extraordinary.<br><br>Here is my web blog; [http://www.bioguiden.se/redirect.aspx?url=https://www.xmtransportation.com/ Learn More]"
wikitext
text/x-wiki
Professional chauffeurs handle the driving, allowing you to loosen up or plan for your day in advance. And also, the amenities given-- like free drinks and progressed reserving choices-- raise your traveling experience, making it genuinely extraordinary.<br><br>Here is my web blog; [http://www.bioguiden.se/redirect.aspx?url=https://www.xmtransportation.com/ Learn More]
45bab13b3b5988b00f97300dff7d9f9f7c4686f8
User:Julie56I070
2
1730
2583
2025-01-23T05:50:00Z
Julie56I070
1961
Created page with "Specialist chauffeurs deal with the driving, permitting you to loosen up or prepare for your day ahead. Plus, the amenities provided-- like free of charge refreshments and advanced booking choices-- elevate your travel experience, making it truly extraordinary.<br><br>Here is my webpage - [https://setiathome.berkeley.edu/show_user.php?userid=11728716 View Source]"
wikitext
text/x-wiki
Specialist chauffeurs deal with the driving, permitting you to loosen up or prepare for your day ahead. Plus, the amenities provided-- like free of charge refreshments and advanced booking choices-- elevate your travel experience, making it truly extraordinary.<br><br>Here is my webpage - [https://setiathome.berkeley.edu/show_user.php?userid=11728716 View Source]
ac337af819352ef10458900accfc014953a20ff7
User:Kayleigh81S
2
1731
2584
2025-01-23T05:57:52Z
Kayleigh81S
1962
Created page with "Specialist licensed operators take care of the driving, allowing you [https://gratisafhalen.be/author/clambreak3/ Go To This Web-Site] loosen up or prepare for your day in advance. Plus, the amenities given-- like complimentary refreshments and advanced reserving choices-- boost your traveling experience, making it truly extraordinary."
wikitext
text/x-wiki
Specialist licensed operators take care of the driving, allowing you [https://gratisafhalen.be/author/clambreak3/ Go To This Web-Site] loosen up or prepare for your day in advance. Plus, the amenities given-- like complimentary refreshments and advanced reserving choices-- boost your traveling experience, making it truly extraordinary.
b8bf3d279342a8125159c60ffed6a392ce049cac
User:RicardoElkington
2
1732
2585
2025-01-23T06:30:53Z
RicardoElkington
1963
Created page with "Knowing when to reserve a shuttle service for your San Diego excursion ensures you'll enjoy a soft and easy experience. Whether it is actually an airport transfer, group outing, or [https://wolvesbaneuo.com/wiki/index.php/User:TressaNorthern Learn More] even sightseeing journey, getting reliable group transportation San Diego in advance promises freedom and satisfaction. Through considering your transportation early, especially during peak periods or even for exclusive..."
wikitext
text/x-wiki
Knowing when to reserve a shuttle service for your San Diego excursion ensures you'll enjoy a soft and easy experience. Whether it is actually an airport transfer, group outing, or [https://wolvesbaneuo.com/wiki/index.php/User:TressaNorthern Learn More] even sightseeing journey, getting reliable group transportation San Diego in advance promises freedom and satisfaction. Through considering your transportation early, especially during peak periods or even for exclusive celebrations, you can pay attention to producing remarkable experiences in this attractive metropolitan area. For the best trip convenience, trust a trustworthy service provider using the best shuttle service to San Diego airport and beyond.<br><br>Have a look at my site ... [http://opelforum.lv/user/steppea67/ Learn More]
d288b5cb954395f53c6876eaf8f1815ad220b5fc
User:JulianLeMessurie
2
1733
2586
2025-01-23T06:31:19Z
JulianLeMessurie
1964
Created page with "The Strong Password Generator is actually an effective tool developed to aid users generate powerful passwords along with convenience. This random password generator delivers adjustable options, allowing users to generate distinct and [http://94.72.103.111:8080/index.php/User:NumbersFxr Read From The Link] safe and secure passwords. With this password generator strong in encryption, users can easily generate sturdy passwords to protect their on the internet accounts [ht..."
wikitext
text/x-wiki
The Strong Password Generator is actually an effective tool developed to aid users generate powerful passwords along with convenience. This random password generator delivers adjustable options, allowing users to generate distinct and [http://94.72.103.111:8080/index.php/User:NumbersFxr Read From The Link] safe and secure passwords. With this password generator strong in encryption, users can easily generate sturdy passwords to protect their on the internet accounts [http://fbesport.com/user/legweeder55/ Read From The Link] possible threats.
950d25be36cd8d4d6e3becb676e0aa5deec6842c
User:GladisH785665
2
1734
2587
2025-01-23T06:57:01Z
GladisH785665
1966
Created page with "Knowing when to schedule a shuttle service for your San Diego vacation ensures you'll appreciate a smooth and easy experience. Whether it is actually an airport transmission, [https://wavedream.wiki/index.php/When_To_Make_A_Reservation_For_A_Shuttle_Service_For_Your_San_Diego_Travel click here] group day trip, or even sightseeing and tour journey, securing trustworthy group transportation San Diego in advance warranties freedom and assurance. Through preparing your tran..."
wikitext
text/x-wiki
Knowing when to schedule a shuttle service for your San Diego vacation ensures you'll appreciate a smooth and easy experience. Whether it is actually an airport transmission, [https://wavedream.wiki/index.php/When_To_Make_A_Reservation_For_A_Shuttle_Service_For_Your_San_Diego_Travel click here] group day trip, or even sightseeing and tour journey, securing trustworthy group transportation San Diego in advance warranties freedom and assurance. Through preparing your transportation early, specifically during the course of peak periods or even for unique events, you can focus on developing memorable experiences in this attractive metropolitan area. For the supreme trip advantage, trust a professional company giving the best shuttle service to San Diego airport and past.<br><br>my web site :: [https://shapshare.com/troweljoseph88 Click Here]
971ece29bf27cb8d82225d6afb541b55b935c6ba
User:EliBarrington2
2
1735
2588
2025-01-23T07:12:28Z
EliBarrington2
1968
Created page with "Receive simple and reliable activation with the KMSAuto activator, perfect for activating Windows and Office editions in regions like Kyrgyzstan, Egypt, and the Russian Federation. The KMSAuto Windows activator guarantees complete performance without the hassle of purchasing keys. KMS Auto download and KMSAuto net Windows 10 deliver convenience of make use of, sustaining millions of users around the world, delivering authentic activation for all.<br><br>My site - [https:..."
wikitext
text/x-wiki
Receive simple and reliable activation with the KMSAuto activator, perfect for activating Windows and Office editions in regions like Kyrgyzstan, Egypt, and the Russian Federation. The KMSAuto Windows activator guarantees complete performance without the hassle of purchasing keys. KMS Auto download and KMSAuto net Windows 10 deliver convenience of make use of, sustaining millions of users around the world, delivering authentic activation for all.<br><br>My site - [https://www.dermandar.com/user/AldodfRios/ View Our Editors Post]
2fb44595b26259aeee1fb8f3c149fd1a3ae42d2b
User:AshleyStrunk
2
1736
2589
2025-01-23T08:39:48Z
AshleyStrunk
1969
Created page with "A trusted Strong Password Generator ensures first-class protection through offering an intuitive method to generate strong password blends. This password generator supplies users with a random password generator that produces very secure, one-of-a-kind passwords. Through utilizing this tool, individuals can effectively generate strong password protection for their on the web records and accounts, protecting them from cyber hazards.<br><br>Also visit my web site [https://..."
wikitext
text/x-wiki
A trusted Strong Password Generator ensures first-class protection through offering an intuitive method to generate strong password blends. This password generator supplies users with a random password generator that produces very secure, one-of-a-kind passwords. Through utilizing this tool, individuals can effectively generate strong password protection for their on the web records and accounts, protecting them from cyber hazards.<br><br>Also visit my web site [https://git.fuwafuwa.moe/cellarpeen02 Read More Here]
d609c73c8f9329ea7708cdeb18825ff67dd3bdb1
User:EleanoreLund0
2
1737
2590
2025-01-25T05:36:03Z
EleanoreLund0
1972
Created page with "Investing in remarkable host isn't nearly storage space; it's concerning producing a solid structure for [http://wiki.myamens.com/index.php/User:SabrinaO05 Get More Info] your on the internet visibility, inevitably resulting in better visitor contentment and increased conversions. By prioritizing these safety and security attributes, you not just protect your content however additionally construct trust with your customers, paving the way for your online success<br><br>..."
wikitext
text/x-wiki
Investing in remarkable host isn't nearly storage space; it's concerning producing a solid structure for [http://wiki.myamens.com/index.php/User:SabrinaO05 Get More Info] your on the internet visibility, inevitably resulting in better visitor contentment and increased conversions. By prioritizing these safety and security attributes, you not just protect your content however additionally construct trust with your customers, paving the way for your online success<br><br>Feel free to visit my web blog: [https://anotepad.com/notes/74j6qqfb Get More Info]
f3ef5bee855180d0dfd519c7c660c1514b89b83d
User:KGOStacia7842630
2
1738
2591
2025-01-26T11:14:33Z
KGOStacia7842630
1974
Created page with "Provident illustrations mirror your dedication to quality and professionalism, boosting reliability with regulatory bodies. Simply put, developing authorization illustrations are not just a procedure; they are essential devices for effective job implementation and conformity.<br><br>Also visit my web page [https://www.startus.cc/company/bygglovstjanst Read My Reviews Here]"
wikitext
text/x-wiki
Provident illustrations mirror your dedication to quality and professionalism, boosting reliability with regulatory bodies. Simply put, developing authorization illustrations are not just a procedure; they are essential devices for effective job implementation and conformity.<br><br>Also visit my web page [https://www.startus.cc/company/bygglovstjanst Read My Reviews Here]
e16e7ecc61c3ea608747deca8c814305eece8bb5
User:MerrillStambaugh
2
1739
2592
2025-01-26T11:23:36Z
MerrillStambaugh
1975
Created page with "Provident drawings reflect your commitment to quality and expertise, enhancing reliability with governing body systems. Simply put, constructing authorization drawings are not simply a procedure; they are important devices for successful project implementation and conformity.<br><br>Here is my web site: [https://ourdoings.com/unlisted/pd6nqve7/2025-01-20 e828827]"
wikitext
text/x-wiki
Provident drawings reflect your commitment to quality and expertise, enhancing reliability with governing body systems. Simply put, constructing authorization drawings are not simply a procedure; they are important devices for successful project implementation and conformity.<br><br>Here is my web site: [https://ourdoings.com/unlisted/pd6nqve7/2025-01-20 e828827]
33e5342b7b038b22a40b03e066f3a1fbc4daf906
User:OsvaldoBello4
2
1740
2593
2025-01-28T11:22:57Z
OsvaldoBello4
1977
Created page with "If you're striving to increase your performance, nooLVL is a great option. This patented element enriches intellectual feature and focus, supplying continual energy for peak sports efficiency. Loaded with sports nutrition benefits, it supplies the needed nourishment for [https://mappinglandtheft.ca/index.php?title=The_Increasing_Demand_For_Sports_Supplements_To_Enhance_Overall_Health_And_Wellness View Our Editors Post] strengthened psychological clearness and physical e..."
wikitext
text/x-wiki
If you're striving to increase your performance, nooLVL is a great option. This patented element enriches intellectual feature and focus, supplying continual energy for peak sports efficiency. Loaded with sports nutrition benefits, it supplies the needed nourishment for [https://mappinglandtheft.ca/index.php?title=The_Increasing_Demand_For_Sports_Supplements_To_Enhance_Overall_Health_And_Wellness View Our Editors Post] strengthened psychological clearness and physical endurance. Choose this sports nourishment supplement for a sharper, a lot more efficient workout session.<br><br>Also visit my website :: [https://devrant.com/users/YaeldfRobbins View Our Editors Post]
6296f05fd4903b008f5acf6802d2472012184433
User:NatalieRudd88
2
1741
2594
2025-01-28T11:35:59Z
NatalieRudd88
1979
Created page with "If you are actually seeking to improve your sports nutrition activity, ProHydrolase is the perfect enzyme that enriches protein digestive function and saturation, guaranteeing your body receives maximum dietary benefits. This sports nourishment supplement enhances your post-workout recuperation with strengthened intake of essential nutrients, assisting you achieve your fitness goals quicker and more successfully.<br><br>Also visit my website; [https://unit4factors.weebly..."
wikitext
text/x-wiki
If you are actually seeking to improve your sports nutrition activity, ProHydrolase is the perfect enzyme that enriches protein digestive function and saturation, guaranteeing your body receives maximum dietary benefits. This sports nourishment supplement enhances your post-workout recuperation with strengthened intake of essential nutrients, assisting you achieve your fitness goals quicker and more successfully.<br><br>Also visit my website; [https://unit4factors.weebly.com/home/the-ultimate-guide-to-picking-the-best-sports-nutrition-supplements-for-superior-health Available Here]
6c831611695d8a4cd02aab1257c2e190c354b790
User:CharleneJackman
2
1742
2595
2025-01-28T11:36:06Z
CharleneJackman
1978
Created page with "If you are actually wanting to increase your sports nourishment video game, ProHydrolase is actually the best enzyme that improves healthy protein digestive function and intake, ensuring your physical body acquires max nutritional benefits. This sports nourishment supplement improves your post-workout recovery with boosted absorption of necessary nutrients, helping you achieve your fitness targets much faster and a lot [http://list.ly/CassidydfGarrett Get More Info] succ..."
wikitext
text/x-wiki
If you are actually wanting to increase your sports nourishment video game, ProHydrolase is actually the best enzyme that improves healthy protein digestive function and intake, ensuring your physical body acquires max nutritional benefits. This sports nourishment supplement improves your post-workout recovery with boosted absorption of necessary nutrients, helping you achieve your fitness targets much faster and a lot [http://list.ly/CassidydfGarrett Get More Info] successfully.
873c81f6d8b3e7af8cf7e16bc213ca4e7e00676a
User:KatieSeptimus1
2
1743
2596
2025-01-28T11:37:30Z
KatieSeptimus1
1980
Created page with "If you are actually appearing to improve your sports nourishment game, ProHydrolase is actually the excellent chemical that enriches protein digestion and intake, ensuring your body receives optimum nutritional benefits. This sports nourishment supplement improves your post-workout healing with improved intake of essential nutrients, assisting you accomplish your fitness objectives much faster and [https://wiki.snooze-hotelsoftware.de/index.php?title=Sports_Nutrition_Su..."
wikitext
text/x-wiki
If you are actually appearing to improve your sports nourishment game, ProHydrolase is actually the excellent chemical that enriches protein digestion and intake, ensuring your body receives optimum nutritional benefits. This sports nourishment supplement improves your post-workout healing with improved intake of essential nutrients, assisting you accomplish your fitness objectives much faster and [https://wiki.snooze-hotelsoftware.de/index.php?title=Sports_Nutrition_Supplements_Gain_Popularity_For_Assisting_Total_Physical_Body_Health_And_Wellness See Details] a lot more efficiently.<br><br>my homepage [https://servalien.weebly.com/home/the-science-behind-sports-nutrition-supplements-and-their-favorable-effect See Details]
feda251c3c817be8c40dcf7f24bd09a093c2edbd
User:RomanBonwick
2
1744
2597
2025-01-29T04:27:21Z
RomanBonwick
1982
Created page with "Pest infestation can negatively influence your residential property's worth, particularly if you plan to sell or rent your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are warnings for prospective purchasers or lessees.<br><br>Review my web page :: [https://www.akonter.com/story/avoid-building-damages/ View Our Editors Post]"
wikitext
text/x-wiki
Pest infestation can negatively influence your residential property's worth, particularly if you plan to sell or rent your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are warnings for prospective purchasers or lessees.<br><br>Review my web page :: [https://www.akonter.com/story/avoid-building-damages/ View Our Editors Post]
6174c2faa156c7149767bf6084bc9061566a7820
User:Bryce84R557
2
1745
2598
2025-01-29T04:56:31Z
Bryce84R557
1983
Created page with "Parasite invasion can adversely impact your building's worth, particularly if you prepare to sell or lease your home. Visible indicators of insects, such as computer mouse droppings or harmed wood, are warnings for potential purchasers or tenants.<br><br>my web blog - [https://www.quora.com/Is-pest-control-a-hard-job/answer/Howard-Meyer-14 Visit Here]"
wikitext
text/x-wiki
Parasite invasion can adversely impact your building's worth, particularly if you prepare to sell or lease your home. Visible indicators of insects, such as computer mouse droppings or harmed wood, are warnings for potential purchasers or tenants.<br><br>my web blog - [https://www.quora.com/Is-pest-control-a-hard-job/answer/Howard-Meyer-14 Visit Here]
9cb5748be3407479b48518c65bb830a69281d644
User:TOLGemma8110208
2
1746
2599
2025-01-29T05:21:25Z
TOLGemma8110208
1984
Created page with "Insect infestation can adversely impact your residential or commercial property's value, specifically if you prepare to sell or lease your home. Noticeable signs of bugs, such as mouse droppings or harmed timber, are warnings for prospective customers or renters.<br><br>Here is my web site: [https://www.temptalia.com/members/drewdfflowers Visit This Link]"
wikitext
text/x-wiki
Insect infestation can adversely impact your residential or commercial property's value, specifically if you prepare to sell or lease your home. Noticeable signs of bugs, such as mouse droppings or harmed timber, are warnings for prospective customers or renters.<br><br>Here is my web site: [https://www.temptalia.com/members/drewdfflowers Visit This Link]
585118d4e9184bbb816cf3748513597bc5d2d39a
User:CornellQuinonez
2
1747
2600
2025-01-29T05:27:12Z
CornellQuinonez
1985
Created page with "Pest invasion can adversely affect your residential property's value, especially if you plan to sell or lease your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are red flags for prospective purchasers or renters.<br><br>My web site - [https://www.tumblr.com/catarinalee-sfpc/773637605115019264/leading-solutions-for-taking-on-insect-problems-in?source=share Read More Here]"
wikitext
text/x-wiki
Pest invasion can adversely affect your residential property's value, especially if you plan to sell or lease your home. Visible indications of parasites, such as computer mouse droppings or harmed timber, are red flags for prospective purchasers or renters.<br><br>My web site - [https://www.tumblr.com/catarinalee-sfpc/773637605115019264/leading-solutions-for-taking-on-insect-problems-in?source=share Read More Here]
172d314a992cd051dcdf2f12786660070dc833dc
User:DannyPya098333
2
1748
2601
2025-01-29T05:38:52Z
DannyPya098333
1989
Created page with "The future of addiction rehabilitation in New Jersey is actually definitely vivid. With ongoing developments in treatment approaches, individualized care, technology, and internal cleansing methods, addiction treatment centers NJ are offering expect to people looking for lasting healing. These growths, together with increased loved ones and community support, are actually molding a brand new period of addiction therapy in the condition. Whether it is actually drug rehabs..."
wikitext
text/x-wiki
The future of addiction rehabilitation in New Jersey is actually definitely vivid. With ongoing developments in treatment approaches, individualized care, technology, and internal cleansing methods, addiction treatment centers NJ are offering expect to people looking for lasting healing. These growths, together with increased loved ones and community support, are actually molding a brand new period of addiction therapy in the condition. Whether it is actually drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for recovery and growth are increasing, supplying brand-new methods for those looking for a life devoid of substance addiction.<br><br>my page: [https://creativedrag.website2.me/blog/discovering-treatment-techniques-at-substance-addiction-rehabilitation-centers-in-nj Visit Here]
269d97ab165c21b0ce5755f8a3c9b93d8ceff7f7
User:Christy22V
2
1749
2602
2025-01-29T05:41:22Z
Christy22V
1987
Created page with "Parasite problem can negatively influence your building's value, particularly if you plan to sell or lease your home. Visible signs of pests, such as mouse droppings or damaged wood, are warnings for potential purchasers or occupants.<br><br>my homepage: [https://www.reverbnation.com/artist/geralddaugherty7 This Article]"
wikitext
text/x-wiki
Parasite problem can negatively influence your building's value, particularly if you plan to sell or lease your home. Visible signs of pests, such as mouse droppings or damaged wood, are warnings for potential purchasers or occupants.<br><br>my homepage: [https://www.reverbnation.com/artist/geralddaugherty7 This Article]
eb3e508212b484563ddb36ff931840ebbeced5b3
User:KristopherLangan
2
1750
2603
2025-01-29T05:51:54Z
KristopherLangan
1990
Created page with "The future of substance addiction rehabilitation in New Jersey is undoubtedly brilliant. Along with ongoing innovations in treatment techniques, individualized care, modern technology, and detoxification techniques, addiction treatment centers NJ are actually providing expect to individuals trying to find lasting healing. These advancements, together with boosted household and community help, are molding a brand-new age of addiction therapy in the condition. Whether it's..."
wikitext
text/x-wiki
The future of substance addiction rehabilitation in New Jersey is undoubtedly brilliant. Along with ongoing innovations in treatment techniques, individualized care, modern technology, and detoxification techniques, addiction treatment centers NJ are actually providing expect to individuals trying to find lasting healing. These advancements, together with boosted household and community help, are molding a brand-new age of addiction therapy in the condition. Whether it's drug rehabs New Jersey or alcohol rehabs in New Jersey, the possibilities for recovery and growth are growing, providing brand new methods for those seeking a life without substance addiction.<br><br>Look into my website [http://www.talkmarkets.com/member/MasenBallard Read My Post Here]
723bbd6e08c25a2eadf4a26ed927f9c73f99c542
User:KoreyScofield73
2
1751
2604
2025-01-29T06:11:54Z
KoreyScofield73
1991
Created page with "The future of substance addiction recovery in New Jersey is undeniably intense. With continuous developments in therapy techniques, tailored care, modern technology, and cleansing procedures, addiction treatment centers NJ are providing wish to individuals appearing for lasting rehabilitation. These developments, along with increased family and community support, are actually shaping a new age of addiction treatment in the condition. Whether it's drug rehabs New Jersey o..."
wikitext
text/x-wiki
The future of substance addiction recovery in New Jersey is undeniably intense. With continuous developments in therapy techniques, tailored care, modern technology, and cleansing procedures, addiction treatment centers NJ are providing wish to individuals appearing for lasting rehabilitation. These developments, along with increased family and community support, are actually shaping a new age of addiction treatment in the condition. Whether it's drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for healing and development are actually extending, using brand-new opportunities for those seeking a life free from substance addiction.<br><br>My web site - [https://www.lomography.com/homes/EthenHale Get Idea About Your Bit]
5cee19c60a3980a581ee97edf5e6687ecdfad135
User:LucilleDial9
2
1752
2605
2025-01-29T08:39:58Z
LucilleDial9
1993
Created page with "For [https://roses.shoutwiki.com/wiki/Benutzer:StevePrentice17 Websites] businesses in necessity of bulk exotic snacks, ExoticSnack Hub delivers a wide collection of treats from around the entire world. Situated in Elk Grove Village, Illinois, they are actually counted on exotic snack distributors delivering top-notch exotic snacks wholesale USA. Whether you're filling up or even attempting one thing brand new, ExoticSnack Hub provides premium snacks and treats at irres..."
wikitext
text/x-wiki
For [https://roses.shoutwiki.com/wiki/Benutzer:StevePrentice17 Websites] businesses in necessity of bulk exotic snacks, ExoticSnack Hub delivers a wide collection of treats from around the entire world. Situated in Elk Grove Village, Illinois, they are actually counted on exotic snack distributors delivering top-notch exotic snacks wholesale USA. Whether you're filling up or even attempting one thing brand new, ExoticSnack Hub provides premium snacks and treats at irresistible prices.<br><br>Check out my blog :: [https://snacksadvisor.wordpress.com/ Websites]
7c4febd44fa45f75a028006d4c4c9f9db2d969c8
User:ClemmieDaniels
2
1753
2606
2025-01-29T09:16:19Z
ClemmieDaniels
1995
Created page with "Mineral sun block offer an ecological, skin-loving solution for [https://shiapedia.1god.org/index.php/The_Reason_Why_Mineral_Sunscreens_Are_Perfect_For_Environmentally_Oriented_Customers Websites] consumers that care about both their skin wellness and the planet. Along with their organic, safe ingredients, mild formulas, and maintainable packing, these products support both personal wellness and ecological preservation. Deciding on mineral sunscreen SPF 50 is actually a..."
wikitext
text/x-wiki
Mineral sun block offer an ecological, skin-loving solution for [https://shiapedia.1god.org/index.php/The_Reason_Why_Mineral_Sunscreens_Are_Perfect_For_Environmentally_Oriented_Customers Websites] consumers that care about both their skin wellness and the planet. Along with their organic, safe ingredients, mild formulas, and maintainable packing, these products support both personal wellness and ecological preservation. Deciding on mineral sunscreen SPF 50 is actually a small however impactful way to look after your skin layer and support a greener, a lot more sustainable future.<br><br>My web site :: [https://www.cfd-online.com/Forums/members/deminichatfield.html Websites]
d8e7222db1bfd81f9975fe76cda4cb18ccb18a3b
User:AlisiaNave69
2
1754
2607
2025-01-29T10:15:57Z
AlisiaNave69
1997
Created page with "Mineral sunscreens deliver an environmentally friendly, skin-loving solution for customers that appreciate each their skin layer wellness and the world. Along with their all-natural, non-toxic elements, delicate formulas, and maintainable packaging, these items assist both individual wellness and environmental preservation. Choosing mineral sunscreen SPF 50 is actually a little but impactful technique to maintain your skin and support a greener, extra lasting future.<br>..."
wikitext
text/x-wiki
Mineral sunscreens deliver an environmentally friendly, skin-loving solution for customers that appreciate each their skin layer wellness and the world. Along with their all-natural, non-toxic elements, delicate formulas, and maintainable packaging, these items assist both individual wellness and environmental preservation. Choosing mineral sunscreen SPF 50 is actually a little but impactful technique to maintain your skin and support a greener, extra lasting future.<br><br>Feel free to visit my blog post ... [https://lookingforclan.com/user/289718/ Get More Info]
ac2b58bed8e8b53f6d7882c396d571c18bd45e6a
User:LincolnBarrier
2
1755
2608
2025-01-29T11:24:44Z
LincolnBarrier
2000
Created page with "Qimingcasting specializes in produced high quality crusher additional components adapted to specific working needs. Through leveraging their proficiency, you enhance the layout method, making certain that each component is engineered for the greatest effectiveness and durability. Interest to particular in this particular stage could significantly impact the overall functionality and life-span of [https://karmaapps.website2.me/blog/the-reason-why-chinese-makers-control-th..."
wikitext
text/x-wiki
Qimingcasting specializes in produced high quality crusher additional components adapted to specific working needs. Through leveraging their proficiency, you enhance the layout method, making certain that each component is engineered for the greatest effectiveness and durability. Interest to particular in this particular stage could significantly impact the overall functionality and life-span of [https://karmaapps.website2.me/blog/the-reason-why-chinese-makers-control-the-crusher-use-components-market Read From The Link] tools.
2c381d49001f820b82d0dac7dc27110a535724ba
User:HopeWynn833514
2
1756
2609
2025-01-29T12:18:48Z
HopeWynn833514
2003
Created page with "Hybrid motor vehicles are actually here to remain, and along with their increasing appeal, the need for focused repairs in Escondido, CA, are going to proceed to raise. Whether you need to have hybrid battery repairs, [http://wiki.fikweb.com.br/index.php/User:Brenda67H152 Get More Info] Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is actually important to select a seasoned vehicle shop that recognizes the intricacies of hybrid motor vehicle s..."
wikitext
text/x-wiki
Hybrid motor vehicles are actually here to remain, and along with their increasing appeal, the need for focused repairs in Escondido, CA, are going to proceed to raise. Whether you need to have hybrid battery repairs, [http://wiki.fikweb.com.br/index.php/User:Brenda67H152 Get More Info] Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is actually important to select a seasoned vehicle shop that recognizes the intricacies of hybrid motor vehicle servicing. At Escondido AutoPros, you may trust our qualified specialists to give the pro care your hybrid vehicle requires to remain on the roadway for many years to come.<br><br>Have a look at my homepage [https://www.tumblr.com/sybilandbranson/773733166581252096/what-to-expect-throughout-a-hybrid-automobile?source=share Get More Info]
5b8f34f5370dcf594837342c9f11affdb8bbefa8
User:ElouiseAnnis1
2
1757
2610
2025-01-29T12:46:07Z
ElouiseAnnis1
2006
Created page with "Hybrid automobiles are actually here to remain, and along with their growing recognition, the requirement for specialized repairs in Escondido, CA, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:CandidaYagan9 Get More Info] will definitely carry on to increase. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is important to decide on an expert automobile shop that comprehends the complexities of..."
wikitext
text/x-wiki
Hybrid automobiles are actually here to remain, and along with their growing recognition, the requirement for specialized repairs in Escondido, CA, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:CandidaYagan9 Get More Info] will definitely carry on to increase. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or Toyota Prius check engine light repairs, it is important to decide on an expert automobile shop that comprehends the complexities of hybrid automobile maintenance. At Escondido AutoPros, you can easily trust our licensed experts to supply the pro care your hybrid car requires to remain on the road for several years to come.<br><br>Feel free to visit my blog post: [https://www.getlisteduae.com/listings/escondido-auto-pros-auto-repair-hybrid-repair Get More Info]
391723c45c0f6ea2fbd14fc897584653fa8d242b
User:ViolaRignall19
2
1758
2611
2025-01-29T12:49:50Z
ViolaRignall19
2005
Created page with "Hybrid automobiles are actually here to remain, and along with their growing attraction, the requirement for concentrated repairs in Escondido, CA, will remain to improve. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or even Toyota Prius check engine light repairs, it is important to choose a seasoned vehicle shop that knows the intricacies of hybrid vehicle maintenance. At Escondido AutoPros, you may trust our qualified service technicians to suppl..."
wikitext
text/x-wiki
Hybrid automobiles are actually here to remain, and along with their growing attraction, the requirement for concentrated repairs in Escondido, CA, will remain to improve. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or even Toyota Prius check engine light repairs, it is important to choose a seasoned vehicle shop that knows the intricacies of hybrid vehicle maintenance. At Escondido AutoPros, you may trust our qualified service technicians to supply the pro care your hybrid automobile requires to remain on the street for years to come.<br><br>Look into my homepage; [https://anotepad.com/note/read/sg4f85a3 Websites]
9d831d40af36b9be826f0368180a013d1dead879
User:AnitraHawes256
2
1759
2612
2025-01-29T12:59:37Z
AnitraHawes256
2007
Created page with "Hybrid cars are actually here to keep, and with their expanding attraction, the demand for specialized repairs in Escondido, CA, will remain to enhance. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or [https://menwiki.men/wiki/The_Growth_Of_Hybrid_Vehicles_And_The_Demand_For_Specialized_Repairs_In_Escondido_CA Check More Details Here] Toyota Prius [https://lennypantoja.dropmark.com/1854516/35698213 Check More Details Here] engine light repairs, it..."
wikitext
text/x-wiki
Hybrid cars are actually here to keep, and with their expanding attraction, the demand for specialized repairs in Escondido, CA, will remain to enhance. Whether you need hybrid battery repairs, Toyota Prius ABS repairs, or [https://menwiki.men/wiki/The_Growth_Of_Hybrid_Vehicles_And_The_Demand_For_Specialized_Repairs_In_Escondido_CA Check More Details Here] Toyota Prius [https://lennypantoja.dropmark.com/1854516/35698213 Check More Details Here] engine light repairs, it is necessary to choose an experienced car shop that understands the ins and outs of hybrid automobile maintenance. At Escondido AutoPros, you can trust our qualified service technicians to supply the expert care your hybrid motor vehicle requires to stay on the street for several years to come.
70f21289b8c728148467b6e57cef56e37c6673b3
User:WOAMoses96443
2
1760
2613
2025-01-29T17:08:05Z
WOAMoses96443
2008
Created page with "The future of addiction recovery in New Jersey is unquestionably bright. Along with ongoing technologies in treatment strategies, individualized care, modern technology, and cleansing techniques, addiction treatment centers NJ are providing intend to people looking for lasting recuperation. These advancements, together with improved household and community assistance, are actually molding a brand-new time of addiction treatment in the condition. Whether it's drug rehabs..."
wikitext
text/x-wiki
The future of addiction recovery in New Jersey is unquestionably bright. Along with ongoing technologies in treatment strategies, individualized care, modern technology, and cleansing techniques, addiction treatment centers NJ are providing intend to people looking for lasting recuperation. These advancements, together with improved household and community assistance, are actually molding a brand-new time of addiction treatment in the condition. Whether it's drug rehabs New Jersey or even alcohol rehabs in New Jersey, the opportunities for recuperation and development are expanding, providing new methods for those seeking a life devoid of substance addiction.<br><br>My web-site; [https://www.instagram.com/p/DFWab8JBqOd/ Click Here]
9daa1e80f3ccdabd71a3d72b35b96cf5bc9b1252
User:Ilse67M85300735
2
1761
2614
2025-01-30T09:31:36Z
Ilse67M85300735
2011
Created page with "Alarms without permanence offer ultimate versatility for home security in Spain. Without any lasting arrangements, these systems supply trusted surveillance without the devotion of conventional services. Whether you're renting out or even need temporary protection, alarm systems without permanence ensure tranquility of mind along with easy installment, 24/7 assistance, and [https://www.instapaper.com/read/1749047401 Read From The Link] potential to terminate anytime."
wikitext
text/x-wiki
Alarms without permanence offer ultimate versatility for home security in Spain. Without any lasting arrangements, these systems supply trusted surveillance without the devotion of conventional services. Whether you're renting out or even need temporary protection, alarm systems without permanence ensure tranquility of mind along with easy installment, 24/7 assistance, and [https://www.instapaper.com/read/1749047401 Read From The Link] potential to terminate anytime.
51ee41f1b932ef2d624202c2d8330608a6a78dc9
User:JaredJfo31263518
2
1762
2615
2025-01-30T09:35:47Z
JaredJfo31263518
2012
Created page with "Alarms without permanence deal ultimate adaptability for home safety in Spain. Without long-lasting arrangements, these systems give dependable safety without the devotion of standard services. Whether you are actually leasing or even need to have temporary coverage, alarms without permanence guarantee confidence along with quick and easy installation, 24/7 help, and the capability to cancel anytime.<br><br>my web page: [http://travellers.minube.net/emmyegomez Learn More]"
wikitext
text/x-wiki
Alarms without permanence deal ultimate adaptability for home safety in Spain. Without long-lasting arrangements, these systems give dependable safety without the devotion of standard services. Whether you are actually leasing or even need to have temporary coverage, alarms without permanence guarantee confidence along with quick and easy installation, 24/7 help, and the capability to cancel anytime.<br><br>my web page: [http://travellers.minube.net/emmyegomez Learn More]
cfda5e26226e80077f4027e696d39dc4ff49c8cc
User:MillieW010
2
1763
2616
2025-02-03T07:22:25Z
MillieW010
2015
Created page with "Safeguard and improve your brand credibility with a counted on online track record organization. From keeping track of assessments to attending to damaging content, these professionals guarantee your digital existence keeps tough and reliable. Strengthen customer trust and protect your brand's image along with professional reputation management services modified to your business demands.<br><br>Here is my web site: [https://www.audiodraft.com/user/profile/fabianemedina A..."
wikitext
text/x-wiki
Safeguard and improve your brand credibility with a counted on online track record organization. From keeping track of assessments to attending to damaging content, these professionals guarantee your digital existence keeps tough and reliable. Strengthen customer trust and protect your brand's image along with professional reputation management services modified to your business demands.<br><br>Here is my web site: [https://www.audiodraft.com/user/profile/fabianemedina Article Source]
74a555083951caca9158846dbc8173a3e284ced8
User:EddyMuller87836
2
1764
2617
2025-02-03T07:45:06Z
EddyMuller87836
2017
Created page with "Bicycle accessories enhance your biking experience along with functional and elegant solutions. From bicycle bags to weatherproof covers, our assortment provides longevity and benefit. Designed for daily bikers, these bicycle accessories give convenience and protection on every trip. Improve your bicycle configuration and [https://zeblab.sintef.no/wiki/The_Positive_Effect_Of_Upgrading_Bicycle_Accessories_On_Cycling_Productivity Read My Post Here] take pleasure in smooth..."
wikitext
text/x-wiki
Bicycle accessories enhance your biking experience along with functional and elegant solutions. From bicycle bags to weatherproof covers, our assortment provides longevity and benefit. Designed for daily bikers, these bicycle accessories give convenience and protection on every trip. Improve your bicycle configuration and [https://zeblab.sintef.no/wiki/The_Positive_Effect_Of_Upgrading_Bicycle_Accessories_On_Cycling_Productivity Read My Post Here] take pleasure in smoother, much more reliable cycling with our premium products.<br><br>My page [https://leylalowe.wordpress.com/2025/01/14/por-que-de-compras-calidad-accesorios-de-bicicleta-asuntos/ Read My Post Here]
d32f34bf32151e6da607731338c3159480dafa93
User:WilfredBlackett
2
1765
2618
2025-02-03T07:55:20Z
WilfredBlackett
2018
Created page with "Safeguard and enhance your brand credibility along with a trusted on-line image agency. From checking evaluations to taking care of adverse content, these professionals guarantee your online visibility keeps powerful and reliable. Boost customer trust and guard your brand's image along with expert credibility monitoring services adapted to your business requirements.<br><br>Also visit my page; [https://cullencrawford.notion.site/Por-Qu-Seleccionar-Adecuado-Agencia-De-Rep..."
wikitext
text/x-wiki
Safeguard and enhance your brand credibility along with a trusted on-line image agency. From checking evaluations to taking care of adverse content, these professionals guarantee your online visibility keeps powerful and reliable. Boost customer trust and guard your brand's image along with expert credibility monitoring services adapted to your business requirements.<br><br>Also visit my page; [https://cullencrawford.notion.site/Por-Qu-Seleccionar-Adecuado-Agencia-De-Reputaci-n-Online-De-Los-Asuntos-De-Su-Negocio-175cda2cf8a680a684c4f8957163438d Article Source]
fe207d5e332dd8a5abd424e5ff90a2aeab1b96ef
User:LawrenceFairbank
2
1766
2619
2025-02-03T08:00:02Z
LawrenceFairbank
2019
Created page with "Bicycle accessories enrich your biking experience with efficient and fashionable solutions. From bicycle bags to weatherproof covers, our array gives sturdiness and benefit. Made for everyday cyclists, these bicycle accessories give convenience and safety and security on every ride. Improve your bicycle system and take pleasure in smoother, a lot more effective biking with our premium items.<br><br>My site; [https://www.akonter.com/story/principales-accesorios-de-bicicle..."
wikitext
text/x-wiki
Bicycle accessories enrich your biking experience with efficient and fashionable solutions. From bicycle bags to weatherproof covers, our array gives sturdiness and benefit. Made for everyday cyclists, these bicycle accessories give convenience and safety and security on every ride. Improve your bicycle system and take pleasure in smoother, a lot more effective biking with our premium items.<br><br>My site; [https://www.akonter.com/story/principales-accesorios-de-bicicleta-cada-ciclista/ Clicking Here]
b609a086d89f1687d3b752d7d535196f8bd9f951
User:ArlenFife52993
2
1767
2620
2025-02-03T08:15:22Z
ArlenFife52993
2020
Created page with "Bicycle accessories improve your cycling experience along with efficient and trendy solutions. From bicycle bags to weatherproof covers, [https://penzu.com/public/5a683479804a2d88 Check Our Editor Note] variation delivers durability and convenience. Created for everyday bicyclists, these bicycle accessories give comfort and safety and security on every experience. Update your bicycle arrangement and take pleasure in smoother, much more reliable biking with our premium it..."
wikitext
text/x-wiki
Bicycle accessories improve your cycling experience along with efficient and trendy solutions. From bicycle bags to weatherproof covers, [https://penzu.com/public/5a683479804a2d88 Check Our Editor Note] variation delivers durability and convenience. Created for everyday bicyclists, these bicycle accessories give comfort and safety and security on every experience. Update your bicycle arrangement and take pleasure in smoother, much more reliable biking with our premium items.
570cc1bc01f834878edefee4cb0b04baa87997df
User:FranciscaMcRae6
2
1768
2621
2025-02-03T10:04:23Z
FranciscaMcRae6
2021
Created page with "When expanding your business online, choosing a search engine optimization firm in Norfolk, UK ensures targeted end results. They provide professional search engine optimization approaches modified for the local market, increasing your positions and raising exposure. Along with their assistance, your site will draw in much more all natural website traffic and transform website visitors into loyal consumers. Don't let your competitors outperform you in the Norfolk, UK loc..."
wikitext
text/x-wiki
When expanding your business online, choosing a search engine optimization firm in Norfolk, UK ensures targeted end results. They provide professional search engine optimization approaches modified for the local market, increasing your positions and raising exposure. Along with their assistance, your site will draw in much more all natural website traffic and transform website visitors into loyal consumers. Don't let your competitors outperform you in the Norfolk, UK location - companion along with a counted on SEO company today.<br><br>Review my blog post [https://stack.amcsplatform.com/user/spotgolf04 Check Our Editor Note]
f553ddae1bc4b050f867feb62b6bb8bded7f1924
User:ElizbethCraven6
2
1769
2622
2025-02-03T10:19:10Z
ElizbethCraven6
2023
Created page with "When broadening your business online, employing a search engine optimization company in Norfolk, UK ensures targeted outcomes. They offer professional search engine optimization techniques customized for the local market, improving your rankings and enhancing exposure. With their support, your website will definitely attract much more all natural traffic and change site visitors right into devoted customers. Don't let your rivals surpass you in the Norfolk, UK place - co..."
wikitext
text/x-wiki
When broadening your business online, employing a search engine optimization company in Norfolk, UK ensures targeted outcomes. They offer professional search engine optimization techniques customized for the local market, improving your rankings and enhancing exposure. With their support, your website will definitely attract much more all natural traffic and change site visitors right into devoted customers. Don't let your rivals surpass you in the Norfolk, UK place - companion along with a counted on SEO firm today.<br><br>Look into my site; [https://farangmart.co.th/author/bloodcactus99/ Click Here]
197622e8c0caa45cdff77257e59348443d4b2889
User:WendyMcLeod230
2
1770
2623
2025-02-03T10:20:31Z
WendyMcLeod230
2022
Created page with "When increasing your business online, hiring a SEO agency in Norfolk, UK ensures targeted results. They give skilled search engine optimization approaches tailored for the regional market, increasing your ranks and increasing presence. With their support, your site will attract extra all natural traffic and transform visitors right into devoted clients. Don't let your competitions beat you in the Norfolk, [https://securitytools.wiki/index.php/When_Is_The_Right_Time_To_I..."
wikitext
text/x-wiki
When increasing your business online, hiring a SEO agency in Norfolk, UK ensures targeted results. They give skilled search engine optimization approaches tailored for the regional market, increasing your ranks and increasing presence. With their support, your site will attract extra all natural traffic and transform visitors right into devoted clients. Don't let your competitions beat you in the Norfolk, [https://securitytools.wiki/index.php/When_Is_The_Right_Time_To_Invest_In_SEO_For_Your_Norfolk_Business View Our Editors Post] UK region - partner with a depended on SEO company today.<br><br>Also visit my webpage: [http://csmouse.com/user/badgeform07/ View Our Editors Post]
9f4d95e8d8b988723f68573d05a5a7a372a9f2e4
User:BarbraStrutt44
2
1771
2624
2025-02-03T10:29:24Z
BarbraStrutt44
2024
Created page with "When increasing your business online, tapping the services of a search engine optimization firm in Norfolk, UK makes sure targeted end results. They deliver experienced SEO tactics tailored for the local market, boosting your ranks and improving exposure. With their support, [http://swwwwiki.coresv.net/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:KiaraGross27587 Websites] your internet site is going to bring in even more organic website traffic and convert website visito..."
wikitext
text/x-wiki
When increasing your business online, tapping the services of a search engine optimization firm in Norfolk, UK makes sure targeted end results. They deliver experienced SEO tactics tailored for the local market, boosting your ranks and improving exposure. With their support, [http://swwwwiki.coresv.net/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:KiaraGross27587 Websites] your internet site is going to bring in even more organic website traffic and convert website visitors right into faithful customers. Don't let your rivals outshine you in the Norfolk, UK region - partner along with a trusted SEO company today.<br><br>Feel free to surf to my webpage :: [http://autoexotic.lv/user/basecanada91/ View Our Editors Post]
9f761bf49dc76c37cf7767a4b251a78daea53ec5
User:JaimieCantu08
2
1772
2625
2025-02-04T07:04:38Z
JaimieCantu08
2030
Created page with "Each successful communication, regardless of just how small, strengthens [https://www.keepandshare.com/doc11/36611/hvorfor-ikke-individer-erfaring-sociale-ngstelighed-checke-ud-de-psykiske-elementer Get Idea About Your Bit] skills and minimizes compulsive ideas that can threaten your confidence. Practice active hearing and engage in conversations, concentrating on the other person rather than your anxiousness. You may also consider signing up with social teams or clubs t..."
wikitext
text/x-wiki
Each successful communication, regardless of just how small, strengthens [https://www.keepandshare.com/doc11/36611/hvorfor-ikke-individer-erfaring-sociale-ngstelighed-checke-ud-de-psykiske-elementer Get Idea About Your Bit] skills and minimizes compulsive ideas that can threaten your confidence. Practice active hearing and engage in conversations, concentrating on the other person rather than your anxiousness. You may also consider signing up with social teams or clubs that line up with your rate of interests, [https://pipewiki.org/wiki/index.php/User:KarinaCorfield0 Get More Info] which provide an encouraging setting to practice.
8891b2f5780d892f168213b722dcac5eab87b62c
User:EtsukoBuddicom
2
1773
2626
2025-02-04T07:09:11Z
EtsukoBuddicom
2031
Created page with "Choosing the ideal products from the most effective skin care brands, you make sure that your skin continues to be flawless and radiant everyday. A well-maintained skincare regular boosts your natural beauty and creates you confident in your skin.<br><br>Feel free to visit my page: [https://sk.tags.world/kosice/index.php?page=user&action=pub_profile&id=1674813 Click Here]"
wikitext
text/x-wiki
Choosing the ideal products from the most effective skin care brands, you make sure that your skin continues to be flawless and radiant everyday. A well-maintained skincare regular boosts your natural beauty and creates you confident in your skin.<br><br>Feel free to visit my page: [https://sk.tags.world/kosice/index.php?page=user&action=pub_profile&id=1674813 Click Here]
0df93ffe36f7e0f34e010a067678014c242d11af
User:WinstonJenyns
2
1774
2627
2025-02-04T07:09:34Z
WinstonJenyns
2029
Created page with "Securing admission is simply the beginning of the journey. Trainees also require to get ready for holiday accommodation, traveling, and cultural adjustments in a new country. The Best United States Study Abroad Consultant provides pre-departure positioning sessions, dealing with necessary topics such as adapting [http://demo2-ecomm.in.ua/user/harborhead13/ Go To This Web-Site] a new culture, managing funds, and handling emergencies."
wikitext
text/x-wiki
Securing admission is simply the beginning of the journey. Trainees also require to get ready for holiday accommodation, traveling, and cultural adjustments in a new country. The Best United States Study Abroad Consultant provides pre-departure positioning sessions, dealing with necessary topics such as adapting [http://demo2-ecomm.in.ua/user/harborhead13/ Go To This Web-Site] a new culture, managing funds, and handling emergencies.
7c14794f7f5f6d87b62c437f649a0ce6a3a0f0e8
User:ClintonMullin88
2
1775
2628
2025-02-04T07:32:51Z
ClintonMullin88
2032
Created page with "All successful communication, regardless of just how minor, enhances your abilities and [https://wiki.woge.or.at//index.php?title=Detailed_Overview_To_Handling_Social_Stress_And_Anxiety_In_Social_And_Professional_Setups find out more] reduces obsessive ideas that can threaten your confidence. Exercise active hearing and engage in conversations, concentrating on the various other individual as opposed to your anxiety. You may additionally think about signing up with soci..."
wikitext
text/x-wiki
All successful communication, regardless of just how minor, enhances your abilities and [https://wiki.woge.or.at//index.php?title=Detailed_Overview_To_Handling_Social_Stress_And_Anxiety_In_Social_And_Professional_Setups find out more] reduces obsessive ideas that can threaten your confidence. Exercise active hearing and engage in conversations, concentrating on the various other individual as opposed to your anxiety. You may additionally think about signing up with social teams or clubs that straighten with your interests, which supply an encouraging atmosphere to exercise.<br><br>Also visit my web page: [https://gettr.com/post/p3h0bfm5538 Find Out More]
d73ebc2c09848f2078cd00aaeaff05e48b2f0597
User:HollyJackman
2
1776
2629
2025-02-04T07:50:28Z
HollyJackman
2034
Created page with "For each one successful communication, no matter exactly how minor, reinforces your skills and minimizes compulsive ideas that can weaken your self-confidence. Practice energetic music playing and talk, focusing on the other person rather than your stress and anxiety. You may also consider signing up with social groups or clubs that line up with your rate of interests, which provide a helpful atmosphere to exercise.<br><br>Feel free to surf to my blog post [https://papal..."
wikitext
text/x-wiki
For each one successful communication, no matter exactly how minor, reinforces your skills and minimizes compulsive ideas that can weaken your self-confidence. Practice energetic music playing and talk, focusing on the other person rather than your stress and anxiety. You may also consider signing up with social groups or clubs that line up with your rate of interests, which provide a helpful atmosphere to exercise.<br><br>Feel free to surf to my blog post [https://papaly.com/categories/share?id=c70f38e852c346f1b1f3e29af767d395 This Article]
f01d9609865ec33cc83ea3078d3b6e24355cc634
User:HarrisColon
2
1777
2630
2025-02-04T07:52:15Z
HarrisColon
2033
Created page with "For each one successful communication, regardless of exactly how minor, enhances your skills and reduces obsessive thoughts that can weaken your self-confidence. Exercise energetic music playing and engage in conversations, concentrating on the various other person rather than your anxiety. You could also consider signing up with social groups or clubs that line up with your rate of interests, which give a supportive environment to exercise.<br><br>My webpage [https://te..."
wikitext
text/x-wiki
For each one successful communication, regardless of exactly how minor, enhances your skills and reduces obsessive thoughts that can weaken your self-confidence. Exercise energetic music playing and engage in conversations, concentrating on the various other person rather than your anxiety. You could also consider signing up with social groups or clubs that line up with your rate of interests, which give a supportive environment to exercise.<br><br>My webpage [https://telegra.ph/Identificere-Set-Off-og-Udfordrende-F%C3%B8lelser-02-04 Check More Details Here]
00eb61c102629681bfc919215d7a6da7c7e45169
User:AllanFfo574
2
1778
2631
2025-02-04T08:18:35Z
AllanFfo574
2035
Created page with "Safeguarding admission is just the beginning of the journey. Students also require to get ready for lodging, traveling, and social modifications in a new nation. The Best US Study Abroad Consultant supplies pre-departure positioning sessions, dealing with essential topics such as adjusting to a brand-new culture, [https://wiki.rolandradio.net/index.php?title=Factors_You_Required_A_Research_Abroad_Professional_For_A_Hassle-Free_Request_Refine get more info] managing fina..."
wikitext
text/x-wiki
Safeguarding admission is just the beginning of the journey. Students also require to get ready for lodging, traveling, and social modifications in a new nation. The Best US Study Abroad Consultant supplies pre-departure positioning sessions, dealing with essential topics such as adjusting to a brand-new culture, [https://wiki.rolandradio.net/index.php?title=Factors_You_Required_A_Research_Abroad_Professional_For_A_Hassle-Free_Request_Refine get more info] managing finances, and handling emergency situations.<br><br>My site - [http://autopage.lv/user/suncandle28/ Check Our Editor Note]
7726ddbd59bc2447a8cb860e3261c8bb517a26e0
User:CarloPfeiffer
2
1779
2632
2025-02-04T08:39:31Z
CarloPfeiffer
2037
Created page with "A personal trainer for nutrition is essential for achieving lasting fitness and health outcomes. Whether you are actually looking to lose weight or enhance total welfare, a personal nutrition trainer India or personal nutrition trainer Singapore supplies customized coaching to fulfill your one-of-a-kind needs. Along with pro weight reduction & fitness coaching, clients may embrace far healthier eating habits and an extra active lifestyle, attaining their finest physical..."
wikitext
text/x-wiki
A personal trainer for nutrition is essential for achieving lasting fitness and health outcomes. Whether you are actually looking to lose weight or enhance total welfare, a personal nutrition trainer India or personal nutrition trainer Singapore supplies customized coaching to fulfill your one-of-a-kind needs. Along with pro weight reduction & fitness coaching, clients may embrace far healthier eating habits and an extra active lifestyle, attaining their finest physical health and wellness. Get guidance on exercise regimens, suitable nutrition, and general health for ideal outcomes.<br><br>Take a look at my website [https://intensedebate.com/people/carpvoice7 Find More About This]
5e262cfd5b9f57185be71e816c5bd2b771366d3a
User:George87R58
2
1780
2633
2025-02-04T09:13:10Z
George87R58
2038
Created page with "Protecting admission is simply the start of the journey. Pupils likewise require to prepare for lodging, traveling, and social changes in a new nation. The Best US Study Abroad Consultant offers pre-departure positioning sessions, covering important subjects such as adjusting to a new society, taking care of financial resources, and managing emergency situations.<br><br>Also visit my web page :: [http://autoboss.lv/user/bumperbulb78/ Read More Here]"
wikitext
text/x-wiki
Protecting admission is simply the start of the journey. Pupils likewise require to prepare for lodging, traveling, and social changes in a new nation. The Best US Study Abroad Consultant offers pre-departure positioning sessions, covering important subjects such as adjusting to a new society, taking care of financial resources, and managing emergency situations.<br><br>Also visit my web page :: [http://autoboss.lv/user/bumperbulb78/ Read More Here]
68c5a133b4a0c85e92d7c074e4cc9fda5fed974d
User:ScarlettDoris6
2
1781
2634
2025-02-04T09:39:15Z
ScarlettDoris6
2039
Created page with "All successful interaction, no matter exactly how minor, strengthens your abilities and lowers obsessive ideas that can weaken your self-confidence. Exercise energetic music playing and talk, focusing on the various other individual instead of your anxiety. You could likewise take into consideration signing up with social groups or clubs that align with your interests, which provide an encouraging atmosphere to practice.<br><br>Feel free to surf to my web page - [https:/..."
wikitext
text/x-wiki
All successful interaction, no matter exactly how minor, strengthens your abilities and lowers obsessive ideas that can weaken your self-confidence. Exercise energetic music playing and talk, focusing on the various other individual instead of your anxiety. You could likewise take into consideration signing up with social groups or clubs that align with your interests, which provide an encouraging atmosphere to practice.<br><br>Feel free to surf to my web page - [https://www.akonter.com/story/skelne-set-off-og-hacking-ideer/ Read More Here]
4546e01eff3c510d0f32dd63def183b6eaa26f54
User:NamN221336
2
1782
2635
2025-02-04T10:12:59Z
NamN221336
2041
Created page with "Choosing the right products from the most effective skincare brands, you ensure that your skin remains perfect and radiant on a daily basis. A properly maintained skincare regular enhances your all-natural appeal and makes you confident in your skin.<br><br>my page :: [http://psicolinguistica.letras.ufmg.br/wiki/index.php/Hop-Over-To-These-Guys-w Visit Website]"
wikitext
text/x-wiki
Choosing the right products from the most effective skincare brands, you ensure that your skin remains perfect and radiant on a daily basis. A properly maintained skincare regular enhances your all-natural appeal and makes you confident in your skin.<br><br>my page :: [http://psicolinguistica.letras.ufmg.br/wiki/index.php/Hop-Over-To-These-Guys-w Visit Website]
566da240458469c53dca06194fecb457bf0f7d3f
User:IrvingB25729
2
1783
2636
2025-02-05T06:16:27Z
IrvingB25729
2044
Created page with "In the kitchen area roman shades are available in sensational fabric blends that withstand stains while enhancing your style. These innovative alternatives guarantee you don't have to jeopardize on style or usefulness.<br><br>My web-site: [https://www.exoltech.us/blogs/257739/Precisely-How-to-Select-the-Excellent-Curtains-and-Tones-for This Article]"
wikitext
text/x-wiki
In the kitchen area roman shades are available in sensational fabric blends that withstand stains while enhancing your style. These innovative alternatives guarantee you don't have to jeopardize on style or usefulness.<br><br>My web-site: [https://www.exoltech.us/blogs/257739/Precisely-How-to-Select-the-Excellent-Curtains-and-Tones-for This Article]
c2cc7b2dfa14fbca42d1300389237f124544cd62
User:Numbers79K
2
1784
2637
2025-02-05T06:20:07Z
Numbers79K
2045
Created page with "In the kitchen area roman shades are available in magnificent textile blends that stand up to discolorations while improving your style. These cutting-edge choices assure you don't have to compromise on design or functionality.<br><br>Here is my web blog - [https://vnseo.edu.vn/members/veindream23.241162.html Check Our Top Pick]"
wikitext
text/x-wiki
In the kitchen area roman shades are available in magnificent textile blends that stand up to discolorations while improving your style. These cutting-edge choices assure you don't have to compromise on design or functionality.<br><br>Here is my web blog - [https://vnseo.edu.vn/members/veindream23.241162.html Check Our Top Pick]
97f942cd7d0e3603f62fed9b3d2dbc7066a02140
User:AnnieCortez1212
2
1785
2638
2025-02-05T06:23:07Z
AnnieCortez1212
2046
Created page with "Discovering lots on bedding sets online is everything about being actually clever and doing your research. By understanding exactly what you need [https://www.akonter.com/story/find-your-perfect-bedding-set-online/ Go To This Web-Site] have, keeping an eye on sales and discounts, reviewing rates, and prioritizing quality and customer feedback, you can rack up impressive offers on everything from a coastal duvet cover to an economy size duvet cover or perhaps an extravaga..."
wikitext
text/x-wiki
Discovering lots on bedding sets online is everything about being actually clever and doing your research. By understanding exactly what you need [https://www.akonter.com/story/find-your-perfect-bedding-set-online/ Go To This Web-Site] have, keeping an eye on sales and discounts, reviewing rates, and prioritizing quality and customer feedback, you can rack up impressive offers on everything from a coastal duvet cover to an economy size duvet cover or perhaps an extravagant silk pillowcase. Whether you like floral bed sheets for a pleasant atmosphere or even a textured duvet cover for included sophistication, the excellent bedding set is merely a handful of clicks on away.
96e354bb2a6aa5c8acbcbbfca0571950babb84da
User:RamonaAnsell967
2
1786
2639
2025-02-05T06:30:50Z
RamonaAnsell967
2047
Created page with "In the cooking area roman shades are offered in stunning material blends that stand up to spots while enhancing your style. These innovative options guarantee you don't need to compromise on design or practicality.<br><br>Feel free to surf to my blog ... [https://livepositively.com/how-to-choose-the-excellent-window-curtains-and-shades-for-every-room-in-your-house/ Additional Resources]"
wikitext
text/x-wiki
In the cooking area roman shades are offered in stunning material blends that stand up to spots while enhancing your style. These innovative options guarantee you don't need to compromise on design or practicality.<br><br>Feel free to surf to my blog ... [https://livepositively.com/how-to-choose-the-excellent-window-curtains-and-shades-for-every-room-in-your-house/ Additional Resources]
2eb7dcfe198de9f96ef3133613ddefc88c25be96
User:FidelKaawirn3
2
1787
2640
2025-02-05T06:39:03Z
FidelKaawirn3
2048
Created page with "In the kitchen area roman tones are available in magnificent fabric blends that withstand spots while boosting your decor. These kinds of cutting-edge options ensure you do not need to compromise on style or usefulness.<br><br>My blog post; [https://git.fuwafuwa.moe/maplesilk22 Investigate This Site]"
wikitext
text/x-wiki
In the kitchen area roman tones are available in magnificent fabric blends that withstand spots while boosting your decor. These kinds of cutting-edge options ensure you do not need to compromise on style or usefulness.<br><br>My blog post; [https://git.fuwafuwa.moe/maplesilk22 Investigate This Site]
d546828e20ca9a8d3c4be8f12a1368d16dda29c0
User:Rick179025
2
1788
2641
2025-02-05T07:13:02Z
Rick179025
2051
Created page with "Locating terrific deals on bedding sets online is actually everything about being actually intelligent and doing your research. Through recognizing specifically what you need, watching on sales and discount rates, contrasting prices, and focusing on quality and consumer reviews, you can rack up incredible deals on whatever from a coastal duvet cover to an economy size duvet cover and even a lavish silk pillowcase. Whether you favor floral bed sheets for a comfy atmospher..."
wikitext
text/x-wiki
Locating terrific deals on bedding sets online is actually everything about being actually intelligent and doing your research. Through recognizing specifically what you need, watching on sales and discount rates, contrasting prices, and focusing on quality and consumer reviews, you can rack up incredible deals on whatever from a coastal duvet cover to an economy size duvet cover and even a lavish silk pillowcase. Whether you favor floral bed sheets for a comfy atmosphere or even a textured duvet cover for added beauty, the perfect bedding set is actually only a couple of clicks away.<br><br>Check out my homepage :: [https://setiathome.berkeley.edu/show_user.php?userid=11776754 Know More]
5b707166628dbe093d0f0912f28b0ddef880492a
User:LindaOqx03
2
1789
2642
2025-02-05T07:34:00Z
LindaOqx03
2052
Created page with "By malfunctioning barriers, affordable CAD programs encourage you to utilize the collective brilliant of your group. As you welcome these kinds of devices, you'll notice an increase in productivity and creative thinking, placing your local business to flourish in today's competitive landscape. Let collaboration drive your development trip.<br><br>Also visit my website: [https://todayspecialblog.blogspot.com/2025/02/ultimate-overview-to-finding-reputable.html Click Here]"
wikitext
text/x-wiki
By malfunctioning barriers, affordable CAD programs encourage you to utilize the collective brilliant of your group. As you welcome these kinds of devices, you'll notice an increase in productivity and creative thinking, placing your local business to flourish in today's competitive landscape. Let collaboration drive your development trip.<br><br>Also visit my website: [https://todayspecialblog.blogspot.com/2025/02/ultimate-overview-to-finding-reputable.html Click Here]
3b6708505c861440fed01b4156e8863e69b82dd0
User:DarcyGarvan809
2
1790
2643
2025-02-05T08:00:13Z
DarcyGarvan809
2053
Created page with "Through breaking down barriers, inexpensive CAD courses empower you to generate the cumulative genius of your team. As you accept these kinds of tools, you'll observe a rise in efficiency and creative thinking, positioning your small company [https://gamesgumball.blogspot.com/2025/01/just-how-inexpensive-cad-software.html Go To This Web-Site] thrive in today's competitive landscape. Let partnership drive your development journey."
wikitext
text/x-wiki
Through breaking down barriers, inexpensive CAD courses empower you to generate the cumulative genius of your team. As you accept these kinds of tools, you'll observe a rise in efficiency and creative thinking, positioning your small company [https://gamesgumball.blogspot.com/2025/01/just-how-inexpensive-cad-software.html Go To This Web-Site] thrive in today's competitive landscape. Let partnership drive your development journey.
d72f5710b3652c40683a3654833f263880cacd0d
User:XJBDillon7702
2
1791
2644
2025-02-05T08:24:36Z
XJBDillon7702
2055
Created page with "By means of malfunctioning obstacles, inexpensive CAD courses encourage you to harness the cumulative wizard of your team. As you embrace these kinds of devices, you'll discover a boost in efficiency and imagination, positioning your small company to flourish in today's competitive landscape. Allow partnership drive your technology trip.<br><br>my web blog; [https://photoclub.canadiangeographic.ca/profile/21503874 Visit This Link]"
wikitext
text/x-wiki
By means of malfunctioning obstacles, inexpensive CAD courses encourage you to harness the cumulative wizard of your team. As you embrace these kinds of devices, you'll discover a boost in efficiency and imagination, positioning your small company to flourish in today's competitive landscape. Allow partnership drive your technology trip.<br><br>my web blog; [https://photoclub.canadiangeographic.ca/profile/21503874 Visit This Link]
d7817c3a986ad4bc8e00c8ef50b4cdc292a98f4c
Installation Guide
0
8
2645
2299
2025-02-05T16:46:46Z
Stenoob
2057
Updated Hyperlinks for Windows and Mac.
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc2/plover-4.0.0rc2-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux.
<!--T:12-->
{{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/continuous/plover-4.0.0rc2+6.g53c416f-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
=== Allow Access to Serial Ports ===<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up your writer == <!--T:27-->
<!--T:28-->
See: [[Setting up your writer with Plover]]
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
9c3ea0cadcafcd8371ea956073cfca76129d94bb
User:JoanneHoddle138
2
1792
2646
2025-02-08T02:05:56Z
JoanneHoddle138
2065
Created page with "I'm Carmen Vaughan. Office supervising is what she does and she might not change it out anytime sooner. Iowa is where we've been living for long period. To keep fish just what I do every nights. He's not godd at design but locate want to check his website: https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az<br><br>Stop by my web-site [https://www.pressadvantage.com/story/65778-axis-re..."
wikitext
text/x-wiki
I'm Carmen Vaughan. Office supervising is what she does and she might not change it out anytime sooner. Iowa is where we've been living for long period. To keep fish just what I do every nights. He's not godd at design but locate want to check his website: https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az<br><br>Stop by my web-site [https://www.pressadvantage.com/story/65778-axis-real-estate-announces-comprehensive-property-management-and-advisory-services-in-phoenix-az visit the following webpage]
f2ba7be809390783b9be87631ce5d322546ae45a
User:EugenioNicolai
2
1793
2647
2025-02-08T06:29:58Z
EugenioNicolai
2067
Created page with "Airlines like Ryanair, EasyJet, and TUI are actually updating traveler comfort along with airline amenity kits that consist of green, cutting-edge items. Relied on airline vendors provide inflights items for companies such as Finnair, Swiss Airlines, and Air France, making certain a memorable, maintainable flight experience. [https://cullencrawford.notion.site/Leading-Five-Bespoke-Inflight-Items-to-Boost-Your-Airline-Company-s-Brand-190cda2cf8a680dc9b32e064ceba0c48?pvs=7..."
wikitext
text/x-wiki
Airlines like Ryanair, EasyJet, and TUI are actually updating traveler comfort along with airline amenity kits that consist of green, cutting-edge items. Relied on airline vendors provide inflights items for companies such as Finnair, Swiss Airlines, and Air France, making certain a memorable, maintainable flight experience. [https://cullencrawford.notion.site/Leading-Five-Bespoke-Inflight-Items-to-Boost-Your-Airline-Company-s-Brand-190cda2cf8a680dc9b32e064ceba0c48?pvs=73 Read From The Link] airline amenity kits to bespoke inflight products, [http://wiki.rumpold.li/index.php?title=Sustainability_Satisfies_Luxury:_The_Growth_Of_Bespoke_Inflight_Items Read From The Link] modification is key for complete satisfaction throughout London, UK, and beyond.
161fc4ed85cd4a2a7cebab88740f6a42c2eac223
User:ErickBolduc973
2
1794
2648
2025-02-08T06:55:08Z
ErickBolduc973
2068
Created page with "Airline companies like Ryanair, EasyJet, and TUI are updating traveler convenience with airline amenity kits that include green, impressive products. Depended on airline vendors offer inflights products for service providers including Finnair, Swiss Airlines, and Air France, making certain an unforgettable, sustainable flight experience. [https://biodigitalbusiness.wordpress.com/2025/02/08/how-bespoke-inflight-items-can-improvement-your-airlines-reliability/ Read From Th..."
wikitext
text/x-wiki
Airline companies like Ryanair, EasyJet, and TUI are updating traveler convenience with airline amenity kits that include green, impressive products. Depended on airline vendors offer inflights products for service providers including Finnair, Swiss Airlines, and Air France, making certain an unforgettable, sustainable flight experience. [https://biodigitalbusiness.wordpress.com/2025/02/08/how-bespoke-inflight-items-can-improvement-your-airlines-reliability/ Read From The Link] airline amenity kits to bespoke inflight products, customization is actually key for contentment across London, UK, and beyond.
39d703c13ab97a1f8496ef2fed2043ef9433262f
User:KatherineJarrell
2
1795
2649
2025-02-08T08:53:50Z
KatherineJarrell
2074
Created page with "Using an electric powered bike like the Hitway electric bikes gives the ultimate benefit and power. Whether you require a commuter electric bike for daily make use of or even long range e bikes for weekend break adventures, these bikes provide convenience and dependability. From folding ebikes for effortless storage space to 48v e bike battery for lengthy experiences, the possibilities are actually countless.<br><br>my web-site: [https://carmelobowen.dropmark.com/1863140..."
wikitext
text/x-wiki
Using an electric powered bike like the Hitway electric bikes gives the ultimate benefit and power. Whether you require a commuter electric bike for daily make use of or even long range e bikes for weekend break adventures, these bikes provide convenience and dependability. From folding ebikes for effortless storage space to 48v e bike battery for lengthy experiences, the possibilities are actually countless.<br><br>my web-site: [https://carmelobowen.dropmark.com/1863140 Learn More]
3fb1fc96b7f2e15474c84b8ff928bbd9f5576aba
User:RoyBraxton3825
2
1796
2650
2025-02-08T08:56:49Z
RoyBraxton3825
2073
Created page with "Using an electric bike like the Hitway electric bikes gives the best benefit and power. Whether you need a commuter electric bike for daily usage or even long range e bikes for weekend experiences, these bikes supply convenience and reliability. From folding ebikes for very easy storage to 48v e bike battery for extensive rides, the probabilities are actually never-ending.<br><br>Look into my page: [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-elect..."
wikitext
text/x-wiki
Using an electric bike like the Hitway electric bikes gives the best benefit and power. Whether you need a commuter electric bike for daily usage or even long range e bikes for weekend experiences, these bikes supply convenience and reliability. From folding ebikes for very easy storage to 48v e bike battery for extensive rides, the probabilities are actually never-ending.<br><br>Look into my page: [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-electric-bicycle-online-is-a-great-selection Discover More]
836c079d8477c881ac1be1ba614816cbdc45415a
User:SherriSanger65
2
1797
2651
2025-02-08T09:02:24Z
SherriSanger65
2076
Created page with "Riding an electric bike like the Hitway electric bikes supplies the utmost convenience and power. Whether you need a commuter electric bike for daily make use of or even long range e bikes for weekend journeys, these bikes give comfort and [https://thevesti.com/wiki/index.php/User:KobyQuezada9 Click This Link] integrity. From folding ebikes for quick and easy storage space to 48v e bike battery for lengthy adventures, the options are actually endless.<br><br>my blog [ht..."
wikitext
text/x-wiki
Riding an electric bike like the Hitway electric bikes supplies the utmost convenience and power. Whether you need a commuter electric bike for daily make use of or even long range e bikes for weekend journeys, these bikes give comfort and [https://thevesti.com/wiki/index.php/User:KobyQuezada9 Click This Link] integrity. From folding ebikes for quick and easy storage space to 48v e bike battery for lengthy adventures, the options are actually endless.<br><br>my blog [https://mrbuckscience.weebly.com/home/the-reason-that-acquiring-an-electric-bicycle-online-is-a-great-selection Click This Link]
1f37fd1cc02e80773e4ea50b22207fa259c1e540
User:Liam67583612029
2
1798
2652
2025-02-08T10:39:31Z
Liam67583612029
2077
Created page with "Using an electric powered bike like the Hitway electric bikes offers the greatest comfort and power. Whether you need to have a commuter electric bike for day-to-day usage or even long range e bikes for weekend experiences, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:MilagroRidgley9 Check More Details Here] these bikes deliver convenience and stability. From folding ebikes for simple storing to 48v e bike battery for extended experiences, the options are act..."
wikitext
text/x-wiki
Using an electric powered bike like the Hitway electric bikes offers the greatest comfort and power. Whether you need to have a commuter electric bike for day-to-day usage or even long range e bikes for weekend experiences, [https://www.penexchange.de/pen-wiki/index.php/Benutzer:MilagroRidgley9 Check More Details Here] these bikes deliver convenience and stability. From folding ebikes for simple storing to 48v e bike battery for extended experiences, the options are actually limitless.<br><br>Feel free to surf to my blog :: [https://www.diigo.com/item/note/794jr/tj3k?k=99c6ddf893442c1a8dd70aca9569ca05 Read My Reviews Here]
ae4a35d9855af15ee6641421b5534b629851ebeb
User:Kayleigh5567
2
1799
2653
2025-02-09T07:04:44Z
Kayleigh5567
2086
Created page with "Among the most considerable benefits of cooking at home is the capability to control every component that enters into your dishes. When you prepare food yourself, you know precisely what you're eating-- no surprise ingredients, preservatives, or extreme amounts of salt and sugar. You can choose organic ingredients, fresh fruit and vegetables, and lean healthy proteins, all of which contribute to a much healthier diet regimen. On the other hand, takeout often contains har..."
wikitext
text/x-wiki
Among the most considerable benefits of cooking at home is the capability to control every component that enters into your dishes. When you prepare food yourself, you know precisely what you're eating-- no surprise ingredients, preservatives, or extreme amounts of salt and sugar. You can choose organic ingredients, fresh fruit and vegetables, and lean healthy proteins, all of which contribute to a much healthier diet regimen. On the other hand, takeout often contains harmful fats, extreme sodium, and artificial flavorings that can threaten your health objectives. Cooking in your home likewise allows you to accommodate any type of nutritional restrictions, making it simpler to follow a healthy eating strategy.<br><br>my webpage: [https://globalrecipe.mystrikingly.com/blog/tandoori-paneer-pizza-on-naan-a-fusion-delight Check More Details Here]
28af8e035d5ea428fa99de851e80bb7f699e3647
User:FranCordell476
2
1800
2654
2025-02-09T14:15:55Z
FranCordell476
2083
Created page with "Hello and welcome. I am Sammie although i never really liked that name. Mississippi is where he's always lived and his family loves it. Procuring is how he makes money. He is really fond of home brewing and he is trying to get it a path. Go to my website to read through more: https://www.Camu.biz/<br><br>Visit my web-site :: [https://www.Camu.biz/ Benefits Of including a Living Trust in your estate Planning]"
wikitext
text/x-wiki
Hello and welcome. I am Sammie although i never really liked that name. Mississippi is where he's always lived and his family loves it. Procuring is how he makes money. He is really fond of home brewing and he is trying to get it a path. Go to my website to read through more: https://www.Camu.biz/<br><br>Visit my web-site :: [https://www.Camu.biz/ Benefits Of including a Living Trust in your estate Planning]
420d7e3bba00f9afb2a3659fcfa0a243327797e9
User:FinlayDudgeon
2
1801
2655
2025-02-09T16:43:05Z
FinlayDudgeon
2095
Created page with "Velma will be the I'm called and I think it sounds quite good have got say it's. In my professional life I'm a dentist on the other hand plan on changing who's. He is really fond of home brewing and he is trying capital a discipline. For years he's been residing New York. Check out the actual news on the website: https://www.camu.biz<br><br>Also visit my website :: [https://www.camu.biz 401K IRA ROLLOVER]"
wikitext
text/x-wiki
Velma will be the I'm called and I think it sounds quite good have got say it's. In my professional life I'm a dentist on the other hand plan on changing who's. He is really fond of home brewing and he is trying capital a discipline. For years he's been residing New York. Check out the actual news on the website: https://www.camu.biz<br><br>Also visit my website :: [https://www.camu.biz 401K IRA ROLLOVER]
85b59bd917cb32d3bbd246523f6104d00f511271
User:BenitoStroup96
2
1802
2656
2025-02-10T05:54:16Z
BenitoStroup96
2104
Created page with "Regularly update software program and supply training sessions to help everyone really feel comfortable with the technology. By dealing with these technological issues iteratively, you'll create a smoother modification and a much [http://travellers.minube.net/adrienneelarson Check More Details Here] interesting virtual workplace experience for your group."
wikitext
text/x-wiki
Regularly update software program and supply training sessions to help everyone really feel comfortable with the technology. By dealing with these technological issues iteratively, you'll create a smoother modification and a much [http://travellers.minube.net/adrienneelarson Check More Details Here] interesting virtual workplace experience for your group.
fb04aa4e31d3e22e7dd35a5268751a56bc91a521
User:JoshuaVillareal
2
1803
2657
2025-02-10T06:07:27Z
JoshuaVillareal
2105
Created page with "Consistently update software program and supply training sessions to aid everybody feel comfy with the technology. By resolving these technical issues iteratively, you'll develop a smoother modification and a much more interesting virtual office experience for [http://www.allnumis.com/user/profile/amareebest Get Idea About Your Bit] group."
wikitext
text/x-wiki
Consistently update software program and supply training sessions to aid everybody feel comfy with the technology. By resolving these technical issues iteratively, you'll develop a smoother modification and a much more interesting virtual office experience for [http://www.allnumis.com/user/profile/amareebest Get Idea About Your Bit] group.
692a872fec4c5272031f01f856f026a7d45e23b0
User:Brett47F621934
2
1804
2658
2025-02-10T06:12:17Z
Brett47F621934
2106
Created page with "Consistently update software and give training sessions to help everyone feel comfortable with the modern technology. By addressing these technological issues iteratively, you'll create a smoother change and a much more interesting online workplace experience for your group.<br><br>Here is my web site - [https://x.com/EddieRa57234579/status/1888626947955290354 View Our Editors Post]"
wikitext
text/x-wiki
Consistently update software and give training sessions to help everyone feel comfortable with the modern technology. By addressing these technological issues iteratively, you'll create a smoother change and a much more interesting online workplace experience for your group.<br><br>Here is my web site - [https://x.com/EddieRa57234579/status/1888626947955290354 View Our Editors Post]
7bd3c0806bad11bf011132ab20c6fa065551e63a
User:WilliamsKnowlton
2
1805
2659
2025-02-10T06:25:09Z
WilliamsKnowlton
2107
Created page with "Frequently update software application and give training sessions [https://www.youcamapps.com/profile/282082852218020191 Go To This Web-Site] aid everyone feel comfy with the technology. By attending to these technological worries iteratively, you'll develop a smoother modification and a more interesting digital office experience for your group."
wikitext
text/x-wiki
Frequently update software application and give training sessions [https://www.youcamapps.com/profile/282082852218020191 Go To This Web-Site] aid everyone feel comfy with the technology. By attending to these technological worries iteratively, you'll develop a smoother modification and a more interesting digital office experience for your group.
401de5b456753e4a0f68d251e07a071e02e99f00
User:ErvinSeder4
2
1806
2660
2025-02-10T06:32:48Z
ErvinSeder4
2108
Created page with "On a regular basis update software and supply training sessions to help everyone feel comfortable with the technology. By dealing with these technological concerns iteratively, you'll produce a smoother adjustment and a [https://mrbuckscience.weebly.com/home/shocking-rewards-of-gamification-in-virtual-workplaces-you-really-did-not-recognize Learn More] interesting virtual workplace experience for your team."
wikitext
text/x-wiki
On a regular basis update software and supply training sessions to help everyone feel comfortable with the technology. By dealing with these technological concerns iteratively, you'll produce a smoother adjustment and a [https://mrbuckscience.weebly.com/home/shocking-rewards-of-gamification-in-virtual-workplaces-you-really-did-not-recognize Learn More] interesting virtual workplace experience for your team.
aaf755a046b3ee7d4ebae742fbae5e4ddd487aad
User:LynnSverjensky5
2
1807
2661
2025-02-10T08:54:41Z
LynnSverjensky5
2112
Created page with "On a regular basis evaluate your AI metrics and comments to recognize trends and areas for renovation. This iterative procedure not just fosters technology however likewise boosts your AI services, creating them [https://www.tumblr.com/darkette/774639353365479424/reasons-why-free-ai-devices-are-crucial-for?source=share Find More About This] straightened with your goals. Keep trying out up until you discover the best equilibrium."
wikitext
text/x-wiki
On a regular basis evaluate your AI metrics and comments to recognize trends and areas for renovation. This iterative procedure not just fosters technology however likewise boosts your AI services, creating them [https://www.tumblr.com/darkette/774639353365479424/reasons-why-free-ai-devices-are-crucial-for?source=share Find More About This] straightened with your goals. Keep trying out up until you discover the best equilibrium.
fe04f507a899587daf619f4687b58202b10167fe
User:JuniorSain68
2
1808
2662
2025-02-10T08:54:59Z
JuniorSain68
2113
Created page with "Frequently examine your AI metrics and responses to determine trends and locations for enhancement. This repetitive process not only cultivates development but also improves your AI options, making them more straightened with your goals. Maintain trying out until you discover the ideal equilibrium.<br><br>Visit my blog: [https://www.pinterest.com/pin/1019572803143517089 Check Our Editor Note]"
wikitext
text/x-wiki
Frequently examine your AI metrics and responses to determine trends and locations for enhancement. This repetitive process not only cultivates development but also improves your AI options, making them more straightened with your goals. Maintain trying out until you discover the ideal equilibrium.<br><br>Visit my blog: [https://www.pinterest.com/pin/1019572803143517089 Check Our Editor Note]
439f437f9ac58ecb32b714cd8ce1e2243e991763
User:DenisApple
2
1809
2663
2025-02-10T09:02:50Z
DenisApple
2110
Created page with "Regularly evaluate your AI metrics and feedback to recognize trends and locations for enhancement. This repetitive procedure not just promotes innovation yet likewise boosts your AI services, creating them more straightened with your goals. Keep trying out till you find the best balance.<br><br>Also visit my webpage - [http://www.jigsawplanet.com/CeryMills View Source]"
wikitext
text/x-wiki
Regularly evaluate your AI metrics and feedback to recognize trends and locations for enhancement. This repetitive procedure not just promotes innovation yet likewise boosts your AI services, creating them more straightened with your goals. Keep trying out till you find the best balance.<br><br>Also visit my webpage - [http://www.jigsawplanet.com/CeryMills View Source]
baf75ba728add14317fdfcaa753be5e88741ce30
User:JeffryA850833605
2
1810
2664
2025-02-10T09:09:56Z
JeffryA850833605
2114
Created page with "Frequently assess your AI metrics and feedback to identify trends and locations for enhancement. [https://cfgfactory.com/user/307331 Read This Post Here] iterative process not just cultivates technology yet also boosts your AI options, creating them a lot more aligned with your goals. Maintain exploring until you find the ideal equilibrium."
wikitext
text/x-wiki
Frequently assess your AI metrics and feedback to identify trends and locations for enhancement. [https://cfgfactory.com/user/307331 Read This Post Here] iterative process not just cultivates technology yet also boosts your AI options, creating them a lot more aligned with your goals. Maintain exploring until you find the ideal equilibrium.
07ebc295a2997a07aeccffa912b986ceb9ffccac
User:LaverneEddington
2
1811
2665
2025-02-10T12:59:23Z
LaverneEddington
2118
Created page with "When looking into alternatives for alternative health and wellness, telemedicine providers offer tailored care with online healthcare services. Get access to cutting-edge therapies like hrt for weight-loss or even [https://wakelet.com/wake/V7CgkCwTDvAW2jyeO92um Check Our Editor Note] out the perks of online hormone therapy for hormone balance. Whether looking for psychological wellness support with ketamine therapy for depression or health coaching, virtual care has actu..."
wikitext
text/x-wiki
When looking into alternatives for alternative health and wellness, telemedicine providers offer tailored care with online healthcare services. Get access to cutting-edge therapies like hrt for weight-loss or even [https://wakelet.com/wake/V7CgkCwTDvAW2jyeO92um Check Our Editor Note] out the perks of online hormone therapy for hormone balance. Whether looking for psychological wellness support with ketamine therapy for depression or health coaching, virtual care has actually changed well-being. Schedule your virtual doctor consultation to receive skilled tips remotely. Attain optimum health and wellness along with virtual health coaching and plunge into a quest of makeover.
80310f3c6d94d4b17561c371c227366000a823e2
User:EstelaBown966
2
1812
2666
2025-02-10T13:20:02Z
EstelaBown966
2120
Created page with "When looking into options for comprehensive health and wellness, telemedicine providers deliver personalized care by means of online healthcare services. Get access to cutting-edge procedures like hrt for weight loss or explore the perks of online hormone therapy for hormonal balance. Whether looking for mental wellness assistance along with ketamine therapy for depression or wellness training, [http://convergence-eq.com/index.php/The_Future_Of_Medical_Care:_Exactly_How..."
wikitext
text/x-wiki
When looking into options for comprehensive health and wellness, telemedicine providers deliver personalized care by means of online healthcare services. Get access to cutting-edge procedures like hrt for weight loss or explore the perks of online hormone therapy for hormonal balance. Whether looking for mental wellness assistance along with ketamine therapy for depression or wellness training, [http://convergence-eq.com/index.php/The_Future_Of_Medical_Care:_Exactly_How_Online_Clinical_Services_Are_Transforming_Lifestyles Available Here] digital care has transformed well-being. Schedule your virtual doctor consultation to receive expert tips from another location. Obtain superior health and wellness with virtual health coaching and embark on a trip of change.<br><br>Here is my web-site ... [https://www.tumblr.com/financefatloss/775086470463700992/hassle-free-access-with-online-healthcare-services?source=share Available Here]
41307a8e41ca14d30659c7e4037faf980a71598c
User:RenaArmitage489
2
1813
2667
2025-02-10T13:23:39Z
RenaArmitage489
2122
Created page with "Whether your child is actually having a problem with a specific topic or even just needs a lot more concentrated attention to conduct well on their secondary school entryway examinations, coaching in Prague can easily make all the variation. With personalized trainings, [http://archmageriseswiki.com/index.php/User:FletcherC53 Going Here] expert advice, and flexible learning options like on the internet tutoring, your kid will certainly be far better ready, even more sel..."
wikitext
text/x-wiki
Whether your child is actually having a problem with a specific topic or even just needs a lot more concentrated attention to conduct well on their secondary school entryway examinations, coaching in Prague can easily make all the variation. With personalized trainings, [http://archmageriseswiki.com/index.php/User:FletcherC53 Going Here] expert advice, and flexible learning options like on the internet tutoring, your kid will certainly be far better ready, even more self-assured, and prepared to encounter their tests along with excellence. Purchasing tutoring is an investment in your little one's scholarly future, providing the tools, capabilities, and help needed to excel both in assessments and in their total academic adventure.<br><br>Feel free to visit my blog post - [https://movieo.me/users/jayleenefoster-jpyxzv Going Here]
4d51e9b825aade321b85df4432c500bc2e968049
User:ClaudioGodwin
2
1814
2668
2025-02-10T13:28:05Z
ClaudioGodwin
2119
Created page with "When looking into alternatives for holistic wellness, telemedicine providers deliver tailored care through online healthcare services. [http://www.askmap.net/location/7256653/united-state/telemedical-services Get Idea About Your Bit] access to cutting-edge therapies like hrt for weight management or discover the benefits of online hormone therapy for hormonal balance. Whether looking for psychological wellness assistance along with ketamine therapy for depression or even..."
wikitext
text/x-wiki
When looking into alternatives for holistic wellness, telemedicine providers deliver tailored care through online healthcare services. [http://www.askmap.net/location/7256653/united-state/telemedical-services Get Idea About Your Bit] access to cutting-edge therapies like hrt for weight management or discover the benefits of online hormone therapy for hormonal balance. Whether looking for psychological wellness assistance along with ketamine therapy for depression or even health training, virtual care has actually reinvented wellness. Plan your virtual doctor consultation to obtain experienced insight remotely. Accomplish optimal wellness along with virtual health coaching and plunge into a journey of transformation.
3a05b83d4fe0ec700bc36d7e9c3dd031af139070
User:Aisha52084765564
2
1815
2669
2025-02-10T13:45:21Z
Aisha52084765564
2123
Created page with "Routine gas boiler assessments can assist you follow security laws, giving assurance. Simply put, consistent central heating boiler upkeep and inspections are necessary for a dependable heater and a comfy living atmosphere through the winter season.<br><br>Here is my website [http://www.mohawkradio.com/band_profile.php?bandid=158350 Know More]"
wikitext
text/x-wiki
Routine gas boiler assessments can assist you follow security laws, giving assurance. Simply put, consistent central heating boiler upkeep and inspections are necessary for a dependable heater and a comfy living atmosphere through the winter season.<br><br>Here is my website [http://www.mohawkradio.com/band_profile.php?bandid=158350 Know More]
5cdca808978e941ff9e48ca6ef617810441969f6
User:CarissaCenteno0
2
1816
2670
2025-02-10T13:51:42Z
CarissaCenteno0
2124
Created page with "Whether your kid is actually fighting with a specific target or even simply needs to have much [https://www.tracksandfields.com/profile/view/brockepatel Get More Info] focused interest to execute effectively on their senior high school entry assessments, tutoring in Prague can easily make all the variation. Along with personalized trainings, professional guidance, and flexible knowing choices like online tutoring, your youngster will certainly be actually better ready, a..."
wikitext
text/x-wiki
Whether your kid is actually fighting with a specific target or even simply needs to have much [https://www.tracksandfields.com/profile/view/brockepatel Get More Info] focused interest to execute effectively on their senior high school entry assessments, tutoring in Prague can easily make all the variation. Along with personalized trainings, professional guidance, and flexible knowing choices like online tutoring, your youngster will certainly be actually better ready, a lot more certain, and all set to encounter their tests with excellence. Acquiring tutoring is actually an investment in your kid's scholastic future, offering the tools, skill-sets, and [https://systemcheck-wiki.de/index.php?title=How_Tutoring_In_Prague_May_Aid_Your_Youngster_Excel_In_Their_Senior_High_School_Assessments get more info] support needed to excel both in assessments and in their general informative quest.
f6688580b75d7a5ecb70d2e3deeb40488aea44f0
User:ZakWilmot547112
2
1817
2671
2025-02-10T13:55:14Z
ZakWilmot547112
2125
Created page with "Whether your child is actually having problem with a certain topic or even simply needs to have extra concentrated attention to carry out well on their senior high school entryway assessments, tutoring in Prague can easily create all the variation. With individualized courses, pro direction, and [http://archmageriseswiki.com/index.php/User:Bonny02O8831429 Read More From Here] adaptable learning alternatives like on-line tutoring, your kid will be better well prepared, a..."
wikitext
text/x-wiki
Whether your child is actually having problem with a certain topic or even simply needs to have extra concentrated attention to carry out well on their senior high school entryway assessments, tutoring in Prague can easily create all the variation. With individualized courses, pro direction, and [http://archmageriseswiki.com/index.php/User:Bonny02O8831429 Read More From Here] adaptable learning alternatives like on-line tutoring, your kid will be better well prepared, a lot [https://www.storeboard.com/brooklynnewestvicenteerusso Learn More Here] positive, and ready to face their tests along with success. Investing in tutoring is actually an investment in your little one's academic future, giving the tools, skill-sets, and assistance needed to succeed both in examinations and in their total educational experience.
8942ec504da0c3a486ca543778731cb4d40c5736
User:Shawna9530
2
1818
2672
2025-02-10T14:14:24Z
Shawna9530
2126
Created page with "Routine gas boiler examinations can help you follow security regulations, giving comfort. Basically, constant boiler maintenance and inspections are essential for a reliable heater and a comfortable living atmosphere throughout the cold weather.<br><br>Feel free to surf to my web blog :: [https://www.diigo.com/item/note/794kg/6c40?k=86a7d2a014ff2ef163c9e4326aad55d6 Find Out More]"
wikitext
text/x-wiki
Routine gas boiler examinations can help you follow security regulations, giving comfort. Basically, constant boiler maintenance and inspections are essential for a reliable heater and a comfortable living atmosphere throughout the cold weather.<br><br>Feel free to surf to my web blog :: [https://www.diigo.com/item/note/794kg/6c40?k=86a7d2a014ff2ef163c9e4326aad55d6 Find Out More]
0a7fca89204dd62bfddbff2eac3e8e65959d4cd7
User:Lillian66N
2
1819
2673
2025-02-10T14:37:30Z
Lillian66N
2127
Created page with "Routine gas boiler evaluations can aid you adhere to safety guidelines, giving peace of mind. Basically, regular central heating boiler upkeep and assessments are essential for a reputable heating unit and a comfortable living atmosphere throughout the winter months.<br><br>Take a look at my web site: [https://anotepad.com/notes/wnjwix9n Read This Post Here]"
wikitext
text/x-wiki
Routine gas boiler evaluations can aid you adhere to safety guidelines, giving peace of mind. Basically, regular central heating boiler upkeep and assessments are essential for a reputable heating unit and a comfortable living atmosphere throughout the winter months.<br><br>Take a look at my web site: [https://anotepad.com/notes/wnjwix9n Read This Post Here]
7fcea1118d35d916df959d88d9c39ff3144fc9fb
Installation Guide
0
8
2674
2645
2025-02-11T06:36:57Z
Mkrnr
2028
Update plover download links
wikitext
text/x-wiki
<languages />
<translate>
== Install Plover on Windows == <!--T:1-->
<!--T:2-->
Plover can be installed or ran as a portable ZIP. It may be useful to use the portable ZIP if you are running Plover off of a USB stick or if the host machine has restricted permissions. For all other use cases, however, the installer method is recommended.
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-win64.setup.exe Download the Windows installer here] ===
<!--T:3-->
Run the installer and follow the onscreen instructions. You may need to [https://www.windowscentral.com/how-disable-smartscreen-trusted-app-windows-10 grant permissions for the app to bypass Windows Defender SmartScreen.]<span id="download-the-windows-portable-zip-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-win64.zip Download the Windows portable ZIP here] ===
<!--T:4-->
Extract the entire folder to the location that you’d like to run Plover from. Inside the folder, run <code>plover.exe</code> to start Plover.<span id="install-plover-on-mac"></span>
== Install Plover on Mac ==
<span id="download-plover-for-mac-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-macosx_10_13_x86_64.dmg Download Plover for Mac here] ===
<!--T:5-->
# Open the <code>.dmg</code> file.
# In the mounted disk, drag the <code>Plover.app</code> to your <code>Applications</code> folder.
# Open the Applications folder.
# Control-click on Plover, then choose <code>Open</code> from the shortcut menu.
#* When starting Plover for the first time, '''you cannot just double click the app''' (see [https://support.apple.com/en-ca/guide/mac-help/mh40616/mac here] for more info).
# Open <code>System Settings > Privacy & Security > Accessibility</code>.
# Click the <code>+</code> Button, and go to your applications and select <code>Plover.app</code>.
<!--T:6-->
Plover is set up! You can run Plover like you would any other application.
<!--T:8-->
{{Info|text=Other “keyboard helper”-type applications (e.g. Karabiner Elements and text expanders) may interfere with Plover.
</blockquote><span id="if-you-had-previously-uninstalled-plover-or-upgraded-your-system"></span>}}
==== If you had previously uninstalled Plover or upgraded your system ====
<!--T:9-->
Repeat step 5, and remove Plover from the list. '''Do not just uncheck Plover; you will have to explicitly remove Plover by using the <code>-</code> button'''. Once Plover has been removed, re-add <code>Plover.app</code> by repeating step 6.<span id="install-plover-on-linux"></span>
== Install Plover on Linux == <!--T:10-->
<!--T:11-->
Plover is provided as an AppImage. This is the only officially supported method to use Plover on Linux.
<!--T:12-->
{{Warning|text=Plover is not officially supported on systems running Wayland (such as Ubuntu and Fedora by default). See the wiki page on [https://plover.wiki/index.php/Wayland Wayland] for workarounds and other alternatives to Plover.}}
<!--T:13-->
<span id="download-the-plover-appimage-here"></span>
=== [https://github.com/openstenoproject/plover/releases/download/v4.0.0rc5/plover-4.0.0rc5-x86_64.AppImage Download the Plover AppImage here] ===
<!--T:14-->
To use it:
<!--T:15-->
# Download it
# [http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80 Make it executable]
# Launch it like a standard executable<span id="allow-access-to-serial-ports"></span>
=== Allow Access to Serial Ports ===<!--T:16-->
All hobbyist steno keyboards use serial protocols to communicate with Plover. Users by default do not have privileges to use these protocols. You will have to add your user to a group in order to obtain those privileges.
<!--T:17-->
To find the name of the relevant group, plug in your steno keyboard and open a terminal to run the following command:
<!--T:18-->
<pre>stat -c "%G" /dev/ttyACM*</pre>
You should see <code>dialout</code> or <code>uucp</code> depending on your distro. If the above command results in a “file not found” error, try replacing <code>ACM</code> with <code>USB</code> and verify that your keyboard is connected with a working cable.
<!--T:19-->
Once you know the correct group, add your user to it by running the following command:
<!--T:20-->
<pre>sudo usermod -aG <group> $USER</pre>
Replace <code><group></code> with the output of the previous command.
<!--T:21-->
'''Once you have added yourself to the right group, log out and log back in, or restart your computer (recommended).'''
=== Error relating to xcb ===<!--T:22-->
You may run into the following error when trying to run Plover:
<!--T:23-->
<blockquote><code>Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because noQt platform plugin could be initialized. Reinstalling the application may fix this problem.</code>
</blockquote>
Ensure that the following packages are installed:
<!--T:24-->
* <code>libxcb</code>
* <code>xcb-util</code>
* <code>qt5-qtstyleplugins</code>
* <code>libxcb-cursor0</code>
<!--T:25-->
Note that the names of these packages may differ depending on the distro you are using. If the error still persists, run the following:
<!--T:26-->
<pre>./plover-4.0.0rc2-x86_64.AppImage -s plover_plugins install -v 'PyQt5==5.14.2' 'PyQt5-sip==12.7.2'</pre>
<span id="setting-up-my-machine"></span>
== Setting up your writer == <!--T:27-->
<!--T:28-->
See: [[Setting up your writer with Plover]]
== Other installation methods ==
<span id="other-releases"></span>
=== Other releases ===
<!--T:29-->
You can browse various other releases of Plover by scrolling through the [https://github.com/openstenoproject/plover/releases releases page]. To download a release, click on “Assets” and download the applicable file for your operating system.
[[File:Downloading-other-versions-gif.gif|alt=downloading other versions gif|none|thumb|800x800px|Scroll down and click "Assets" in order to find the download links. You don't have to download every file; only the one that is applicable to your operating system.]]
=== Homebrew Cask === <!--T:30-->
<!--T:31-->
If you have [https://caskroom.github.io/ '''Homebrew Cask'''] installed on your system, you can run <code>brew install --cask plover</code> at the command-line.<span id="arch-aur-package"></span>
=== Arch AUR package ===
<!--T:32-->
Two AUR packages are provided:
<!--T:33-->
# [https://aur.archlinux.org/packages/plover/ plover] for the latest stable release
# and [https://aur.archlinux.org/packages/plover-git/ plover-git] for the current <code>master</code>
<!--T:34-->
Note: the plugins manager is not part of <code>plover-git</code>, and is available as a [https://aur.archlinux.org/packages/plover_plugins_manager/ separate package].<span id="gentoo-git-ebuild"></span>
=== Gentoo git ebuild ===
<!--T:35-->
Currently, only a git ebuild for the <code>master</code> branch is provided.
<!--T:36-->
[https://framagit.org/3/ebuilds Personal overlay.] (out of date dependencies)<span id="void-linux-package"></span>
== Void Linux package ==
<!--T:37-->
Plover is packaged in the Void Linux repositories under the package name <code>plover</code>.
<!--T:38-->
Note: the plugins manager has not been packaged yet.<span id="troubleshooting"></span>
== Troubleshooting ==
<!--T:39-->
If you get stuck, you can:
<!--T:40-->
* Check the [[Troubleshooting Issues|troubleshooting guide.]]
* Search for your problem in our [https://github.com/openstenoproject/plover/issues issue tracker] and our [https://github.com/openstenoproject/plover/discussions Discussions forum.]
* If you can’t find your particular problem, [https://github.com/openstenoproject/plover/issues/new/choose open a support request] or [https://github.com/openstenoproject/plover/discussions/new start a Discussion.]
<!--T:41-->
We also have a [https://discord.gg/0lQde43a6dGmAMp2 Plover Discord Server], the [[The_Steno_Community|steno community]], and a [https://github.com/openstenoproject/plover/discussions GitHub Discussions forum] if you have a general idea or discussion topic.<span id="for-developers-running-from-source"></span>
== For developers: running from source ==
<!--T:42-->
If you want to build from source (e.g. if you are a developer), follow the guide for your operating system:
<!--T:43-->
* [https://github.com/openstenoproject/plover/tree/master/windows <code>plover/windows</code>]
* [https://github.com/openstenoproject/plover/tree/master/linux <code>plover/linux</code>]
* [https://github.com/openstenoproject/plover/tree/master/osx <code>plover/osx</code>]
<!--T:44-->
[[Category:Plover]]
</translate>
5e468f8721ecbb1e3bda3f8b6f4aed62b746d32a
User:EulaAnaya83
2
1820
2675
2025-02-11T07:17:15Z
EulaAnaya83
2132
Created page with "Visiting depression treatment centers in New Jersey provides a caring, structured environment developed to sustain people battling depression. Along with evidence-based therapies and comprehensive care, inpatient mental health facilities NJ provide tailored therapy plans. These facilities offer a quiet environment to ensure rehabilitation, guaranteeing customers receive the greatest feasible look after psychological health and [https://higgledy-piggledy.xyz/index.php/Us..."
wikitext
text/x-wiki
Visiting depression treatment centers in New Jersey provides a caring, structured environment developed to sustain people battling depression. Along with evidence-based therapies and comprehensive care, inpatient mental health facilities NJ provide tailored therapy plans. These facilities offer a quiet environment to ensure rehabilitation, guaranteeing customers receive the greatest feasible look after psychological health and [https://higgledy-piggledy.xyz/index.php/User:JeanCrespo4262 Article Source] wellness difficulties, including New Jersey anxiety treatment centers.<br><br>Visit my web-site [https://uconnect.ae/post/803788_going-to-clinical-depression-treatment-centers-in-nj-visiting-depression-treatme.html Visit This Link]
0e566a5d0d19b6bbe392a6b1640b082bb63695a9
User:JaclynArmijo650
2
1821
2676
2025-02-11T08:03:37Z
JaclynArmijo650
2134
Created page with "If you are actually into meme coins, MemeTools produces trading on Raydium and Pumpfun simpler. Utilize the Bundler and Volume Bot to automate and optimize purchases. Experience swift, dependable token launches along with help for Pumpfun Bundler, and [https://thebitcoinproject.club/wiki/index.php/The_Reason_Why_Every_Meme_Coin_Developer_Should_Be_Actually_Utilizing_MemeTools_In_2025 click here] maximize your earnings using DogWifTools. Deal with approximately twenty wa..."
wikitext
text/x-wiki
If you are actually into meme coins, MemeTools produces trading on Raydium and Pumpfun simpler. Utilize the Bundler and Volume Bot to automate and optimize purchases. Experience swift, dependable token launches along with help for Pumpfun Bundler, and [https://thebitcoinproject.club/wiki/index.php/The_Reason_Why_Every_Meme_Coin_Developer_Should_Be_Actually_Utilizing_MemeTools_In_2025 click here] maximize your earnings using DogWifTools. Deal with approximately twenty wallets and boost your token with MemeTools' sophisticated tactics.<br><br>Have a look at my webpage: [https://intern.ee.aeust.edu.tw/home.php?mod=space&uid=1767932 Click Here]
b456344c51348b243e1b001e3631969beca1b43d
User:GayleOldham5
2
1822
2677
2025-02-11T09:21:52Z
GayleOldham5
2138
Created page with "Leveraging the know-how of neighborhood IT business and accepting cloud modern technologies, companies in Prague can reveal brand-new performances and drive growth, strengthening the essential duty that IT sustain plays in their electronic journeys.<br><br>Look at my page :: [http://promodj.com/MakailadfSoto See Our Website]"
wikitext
text/x-wiki
Leveraging the know-how of neighborhood IT business and accepting cloud modern technologies, companies in Prague can reveal brand-new performances and drive growth, strengthening the essential duty that IT sustain plays in their electronic journeys.<br><br>Look at my page :: [http://promodj.com/MakailadfSoto See Our Website]
cc50179c7dbfe4746607dcab61d699b8c3ac1a24
User:ChastityRohu
2
1823
2678
2025-02-11T09:36:51Z
ChastityRohu
2135
Created page with "MemeTools is the best platform for meme coin developers and traders. Launch and manage your meme-based cryptocurrency with simplicity making use of tools like Pumpfun Bundler, Raydium Bundler, and Moonshot. Strengthen deal velocity, handle wallets, and automate operations properly. Incorporate flawlessly along with Solana, Pumpfun, and Raydium for boosted trading experiences and prompt completion.<br><br>Review my web site - [https://share.evernote.com/note/0c033a01-6607..."
wikitext
text/x-wiki
MemeTools is the best platform for meme coin developers and traders. Launch and manage your meme-based cryptocurrency with simplicity making use of tools like Pumpfun Bundler, Raydium Bundler, and Moonshot. Strengthen deal velocity, handle wallets, and automate operations properly. Incorporate flawlessly along with Solana, Pumpfun, and Raydium for boosted trading experiences and prompt completion.<br><br>Review my web site - [https://share.evernote.com/note/0c033a01-6607-613e-5c5e-0846ad9c4fa1 Read More From Here]
d63d04e36b59470150a8268aacabc557387d88b9
User:CoyTheus04
2
1824
2679
2025-02-11T09:41:13Z
CoyTheus04
2137
Created page with "Utilize the proficiency of regional IT firms and accepting cloud technologies, services in Prague can expose brand-new effectiveness and drive development, strengthening the vital function that IT support plays in their digital journeys.<br><br>Have a look at my web page: [https://movieo.me/users/lamontdftapia-jpzcyz Visit Website]"
wikitext
text/x-wiki
Utilize the proficiency of regional IT firms and accepting cloud technologies, services in Prague can expose brand-new effectiveness and drive development, strengthening the vital function that IT support plays in their digital journeys.<br><br>Have a look at my web page: [https://movieo.me/users/lamontdftapia-jpzcyz Visit Website]
2202b9be38383044c996b22393755c7d172d3090
User:MiaGrammer99043
2
1825
2680
2025-02-11T09:46:20Z
MiaGrammer99043
2136
Created page with "If you enjoy meme coins, MemeTools helps make trading on Raydium and Pumpfun less complicated. Utilize the Bundler and Volume Bot to automate and maximize deals. Experience quick, dependable token launches along with support for Pumpfun Bundler, and optimize your incomes making use of DogWifTools. Handle approximately 20 wallets and increase your token along with MemeTools' enhanced techniques.<br><br>My web site ... [https://thecmedia.weebly.com/home/how-memetools-is-em..."
wikitext
text/x-wiki
If you enjoy meme coins, MemeTools helps make trading on Raydium and Pumpfun less complicated. Utilize the Bundler and Volume Bot to automate and maximize deals. Experience quick, dependable token launches along with support for Pumpfun Bundler, and optimize your incomes making use of DogWifTools. Handle approximately 20 wallets and increase your token along with MemeTools' enhanced techniques.<br><br>My web site ... [https://thecmedia.weebly.com/home/how-memetools-is-empowering-the-meme-coin-trading-community Find Out More]
c58e56d95100a1c55ae3d6cd9c3e430c3c62c6db
User:AmbroseBlock768
2
1826
2681
2025-02-11T10:33:07Z
AmbroseBlock768
2144
Created page with "Take advantage of the competence of local IT companies and accepting cloud innovations, companies in Prague can expose brand-new performances and drive growth, reinforcing the vital duty that IT sustain plays in their electronic trips.<br><br>my website - [https://x.com/GilbertsMc/status/1889011397914402895 Get Idea About Your Bit]"
wikitext
text/x-wiki
Take advantage of the competence of local IT companies and accepting cloud innovations, companies in Prague can expose brand-new performances and drive growth, reinforcing the vital duty that IT sustain plays in their electronic trips.<br><br>my website - [https://x.com/GilbertsMc/status/1889011397914402895 Get Idea About Your Bit]
855c1ec7d1b4f25a13ba028f4d67715549bf4b89
User:JewellHolbrook5
2
1827
2682
2025-02-11T10:42:07Z
JewellHolbrook5
2143
Created page with "Going to depression treatment centers in New Jersey provides a tenderhearted, [https://thevesti.com/wiki/index.php/User:MaynardGarsia75 Discover More Here] structured environment made to sustain individuals battling clinical depression. Along with evidence-based therapies and alternative care, inpatient mental health facilities NJ deliver modified treatment plans. These facilities use a peaceful setup to ensure healing, making certain customers receive the most effectiv..."
wikitext
text/x-wiki
Going to depression treatment centers in New Jersey provides a tenderhearted, [https://thevesti.com/wiki/index.php/User:MaynardGarsia75 Discover More Here] structured environment made to sustain individuals battling clinical depression. Along with evidence-based therapies and alternative care, inpatient mental health facilities NJ deliver modified treatment plans. These facilities use a peaceful setup to ensure healing, making certain customers receive the most effective achievable take care of mental wellness problems, featuring New Jersey anxiety treatment centers.<br><br>My web page [https://www.dermandar.com/user/leonardeharrell/ Discover More Here]
255c32d583d52a301f2803cd9bbbc4464acd1924
User:HanneloreSturgis
2
1828
2683
2025-02-11T11:00:57Z
HanneloreSturgis
2145
Created page with "Going to depression treatment centers in New Jersey supplies a thoughtful, organized atmosphere designed to sustain people battling clinical depression. With evidence-based treatments and all natural care, inpatient mental health facilities NJ supply customized treatment plans. These facilities deliver a quiet setup to advertise healing, making sure customers get [https://flipboard.com/@jewellpeterson/anxiety-treatment-centers-in-nj-j6rmbdrsy Read From The Link] very bes..."
wikitext
text/x-wiki
Going to depression treatment centers in New Jersey supplies a thoughtful, organized atmosphere designed to sustain people battling clinical depression. With evidence-based treatments and all natural care, inpatient mental health facilities NJ supply customized treatment plans. These facilities deliver a quiet setup to advertise healing, making sure customers get [https://flipboard.com/@jewellpeterson/anxiety-treatment-centers-in-nj-j6rmbdrsy Read From The Link] very best feasible care for psychological health difficulties, including New Jersey anxiety treatment centers.
53a0ea23cddbb40abfbaf3d330e1a89c43603c32
User:JOHReagan41
2
1829
2684
2025-02-11T16:35:14Z
JOHReagan41
2148
Created page with "Think about comparing panels throughout various suppliers to determine any discrepancies in quality. Inevitably, a complete evaluation of item quality and accreditations will certainly help you make educated decisions, guaranteeing that your investment in solar innovation is sound.<br><br>Feel free to visit my blog post: [https://telegra.ph/Zugang-auf-Top-Qualit%C3%A4t-Produkte-02-11 View Our Editors Post]"
wikitext
text/x-wiki
Think about comparing panels throughout various suppliers to determine any discrepancies in quality. Inevitably, a complete evaluation of item quality and accreditations will certainly help you make educated decisions, guaranteeing that your investment in solar innovation is sound.<br><br>Feel free to visit my blog post: [https://telegra.ph/Zugang-auf-Top-Qualit%C3%A4t-Produkte-02-11 View Our Editors Post]
8bd42ef684f89d0e95c8a7f911bc6bdcbe6d0dcb
User:ChristyGould
2
1830
2685
2025-02-11T17:20:39Z
ChristyGould
2149
Created page with "As you browse, these types of targeted discounts not only boost your purchasing experience yet additionally motivate commitment. By leveraging your browsing history and acquisition trends, companies are developing a [https://anotepad.com/notes/r5ee45cw Learn More] engaging and relevant shopping environment, ensuring you obtain the best offers that align with your needs."
wikitext
text/x-wiki
As you browse, these types of targeted discounts not only boost your purchasing experience yet additionally motivate commitment. By leveraging your browsing history and acquisition trends, companies are developing a [https://anotepad.com/notes/r5ee45cw Learn More] engaging and relevant shopping environment, ensuring you obtain the best offers that align with your needs.
a0b7831776b6a52438b710616203672aa387694d
User:JacquelineShaffe
2
1831
2686
2025-02-11T17:28:12Z
JacquelineShaffe
2150
Created page with "Considering that you browse, these targeted discounts not just boost your purchasing experience yet also motivate commitment. By utilize your surfing history and purchase trends, business are producing a more engaging and appropriate purchasing setting, guaranteeing you obtain the best bargains that straighten with your requirements.<br><br>Here is my site: [http://www.neighborhoodlink.com/people/CaitlindfLivingston Additional Resources]"
wikitext
text/x-wiki
Considering that you browse, these targeted discounts not just boost your purchasing experience yet also motivate commitment. By utilize your surfing history and purchase trends, business are producing a more engaging and appropriate purchasing setting, guaranteeing you obtain the best bargains that straighten with your requirements.<br><br>Here is my site: [http://www.neighborhoodlink.com/people/CaitlindfLivingston Additional Resources]
0a604bb4aa780c97eac7a88d645a80c44725c419
User:AngieVerbrugghen
2
1832
2687
2025-02-11T18:55:58Z
AngieVerbrugghen
2151
Created page with "As you browse, these targeted discounts not only boost your shopping experience yet likewise motivate loyalty. By take advantage of your browsing history and purchase patterns, firms are creating an extra appealing and appropriate buying environment, ensuring you obtain the very best offers that line up with your demands.<br><br>Also visit my blog - [https://kitsplit.com/SamsondfHernandez/ Read My Reviews Here]"
wikitext
text/x-wiki
As you browse, these targeted discounts not only boost your shopping experience yet likewise motivate loyalty. By take advantage of your browsing history and purchase patterns, firms are creating an extra appealing and appropriate buying environment, ensuring you obtain the very best offers that line up with your demands.<br><br>Also visit my blog - [https://kitsplit.com/SamsondfHernandez/ Read My Reviews Here]
700b0b019ab237ff1fbb5def34f4c46f89b2ae73
User:GCJMaryellen
2
1833
2688
2025-02-11T19:08:57Z
GCJMaryellen
2153
Created page with "Consider contrasting panels throughout different suppliers to identify any type of inconsistencies in quality. Ultimately, a thorough evaluation of product quality and certifications will aid you make educated choices, making certain that [https://www.root-me.org/DamiondfJennings?lang=en Get Idea About Your Bit] financial investment in solar technology is audio."
wikitext
text/x-wiki
Consider contrasting panels throughout different suppliers to identify any type of inconsistencies in quality. Ultimately, a thorough evaluation of product quality and certifications will aid you make educated choices, making certain that [https://www.root-me.org/DamiondfJennings?lang=en Get Idea About Your Bit] financial investment in solar technology is audio.
9d453d104f991d58333c1c3cdb13db92a5115843
User:IsabelleDye9
2
1834
2689
2025-02-11T19:32:23Z
IsabelleDye9
2154
Created page with "Consider comparing panels throughout various providers to recognize any type of discrepancies in quality. Ultimately, a complete evaluation of product quality and qualifications will assist you make educated decisions, making certain that your financial investment in solar modern technology is sound.<br><br>Feel free to visit my web page: [https://www.furvilla.com/profile/229061 Visit Here]"
wikitext
text/x-wiki
Consider comparing panels throughout various providers to recognize any type of discrepancies in quality. Ultimately, a complete evaluation of product quality and qualifications will assist you make educated decisions, making certain that your financial investment in solar modern technology is sound.<br><br>Feel free to visit my web page: [https://www.furvilla.com/profile/229061 Visit Here]
23c04c4220e265a06f04ab201ec2f5a06389284a
User:TyreeWilloughby
2
1835
2690
2025-02-11T19:49:26Z
TyreeWilloughby
2157
Created page with "Digital marketing company in Prague gives tailored services to aid businesses develop online. From search engine optimisation and PPC to social media and content marketing, they craft efficient approaches to increase exposure and [http://classicalmusicmp3freedownload.com/ja/index.php?title=Checking_Out_The_Advancement_Of_Digital_Advertising_In_Prague:_Essential_Insights_And_Forecasts Additional Resources] draw in target market. Their proficiency makes certain measurable..."
wikitext
text/x-wiki
Digital marketing company in Prague gives tailored services to aid businesses develop online. From search engine optimisation and PPC to social media and content marketing, they craft efficient approaches to increase exposure and [http://classicalmusicmp3freedownload.com/ja/index.php?title=Checking_Out_The_Advancement_Of_Digital_Advertising_In_Prague:_Essential_Insights_And_Forecasts Additional Resources] draw in target market. Their proficiency makes certain measurable results that improve engagement and drive conversions for businesses of all sizes.<br><br>my blog ... [https://twitback.com/post/84897 Additional Resources]
dd7e48d0747300f9869bc606653c7c19de6d94e2
User:ErnestineKrug18
2
1836
2691
2025-02-11T19:51:06Z
ErnestineKrug18
2158
Created page with "Take into consideration contrasting panels throughout various distributors to determine any type of discrepancies in quality. Inevitably, a comprehensive analysis of item quality and certifications will aid you make educated decisions, guaranteeing that your investment in solar technology is audio.<br><br>Feel free to visit my web-site :: [https://www.universe.com/users/aaliyah-farley-NXQ2Y8 Read This Post Here]"
wikitext
text/x-wiki
Take into consideration contrasting panels throughout various distributors to determine any type of discrepancies in quality. Inevitably, a comprehensive analysis of item quality and certifications will aid you make educated decisions, guaranteeing that your investment in solar technology is audio.<br><br>Feel free to visit my web-site :: [https://www.universe.com/users/aaliyah-farley-NXQ2Y8 Read This Post Here]
cd7236f85743ce3f1452f45987d332e6d0fec4f1
User:MamieNunan29
2
1837
2692
2025-02-12T06:10:28Z
MamieNunan29
2161
Created page with "When a photo voltaic supplier makes sure a stable supply of solar panels, solar energy adoption increases. Photo-voltaic dealers play a crucial job in making solar power available all over Europe, supporting non commercial, office, and [https://drapia.org/11-WIKI/index.php/The_Reason_Why_Every_Solar_Installer_Needs_A_Reputable_Photovoltaic_Representative_In_Europe get more info] industrial projects. Their know-how in coordinations and product schedule boosts the switch..."
wikitext
text/x-wiki
When a photo voltaic supplier makes sure a stable supply of solar panels, solar energy adoption increases. Photo-voltaic dealers play a crucial job in making solar power available all over Europe, supporting non commercial, office, and [https://drapia.org/11-WIKI/index.php/The_Reason_Why_Every_Solar_Installer_Needs_A_Reputable_Photovoltaic_Representative_In_Europe get more info] industrial projects. Their know-how in coordinations and product schedule boosts the switch to sustainable energy solutions, lessening dependancy on fossil fuels.<br><br>my page [https://musclelove.com/profile/MalikdfFarmer Get More Info]
5d1c1df649d83323464a7c48f5f39b4794f0b97d
User:AracelisDeLoitte
2
1838
2693
2025-02-12T07:26:06Z
AracelisDeLoitte
2163
Created page with "Leveraging the knowledge of regional IT firms and accepting cloud innovations, companies in Prague can disclose brand-new efficiencies and drive development, strengthening the important duty that IT support plays in their digital journeys.<br><br>my web-site: [https://www.chordie.com/forum/profile.php?id=2214649 Check Our Editor Note]"
wikitext
text/x-wiki
Leveraging the knowledge of regional IT firms and accepting cloud innovations, companies in Prague can disclose brand-new efficiencies and drive development, strengthening the important duty that IT support plays in their digital journeys.<br><br>my web-site: [https://www.chordie.com/forum/profile.php?id=2214649 Check Our Editor Note]
6998bae8aea8428455f6f0ebd2cb54d8b8876c76
User:LBVArden6278375
2
1839
2694
2025-02-17T04:54:49Z
LBVArden6278375
2174
Created page with "Through applying these effective techniques, you'll be well on your means to fast-tracking your clinical research profession. Whether you're seeking direction from experienced mentors, polishing your writing skills, or utilizing innovative tools to boost your study, [https://andyfreund.de/wiki/index.php?title=Exactly_How_To_Boost_Your_Medical_Investigation_Profession:_Proven_Systems_For_Excellence View Our Editors Post] the key is actually to maintain things easy and ef..."
wikitext
text/x-wiki
Through applying these effective techniques, you'll be well on your means to fast-tracking your clinical research profession. Whether you're seeking direction from experienced mentors, polishing your writing skills, or utilizing innovative tools to boost your study, [https://andyfreund.de/wiki/index.php?title=Exactly_How_To_Boost_Your_Medical_Investigation_Profession:_Proven_Systems_For_Excellence View Our Editors Post] the key is actually to maintain things easy and efficient. With the ideal technique and a concentrate on building your scholastic credibility, you may effectively get through the difficulties of clinical research and end up being a leading have a place in the field. And keep in mind, sturdy suggestions like a clinical study Recommendation letter design template or even Recommendation letter for medical investigation professionals will definitely help you en route, guaranteeing that your scholarly journey is actually sustained and commemorated.<br><br>Here is my web-site - [https://www.tumblr.com/whenyouworkatflaconi/775619048843165696/from-unaware-to-nih-funded-precisely-why-clinical View Our Editors Post]
c16d9eae84db0dfac76ab5a0e490e97ef960f18f
User:NedBaumgardner
2
1840
2695
2025-02-17T04:56:43Z
NedBaumgardner
2175
Created page with "Through executing these proven strategies, you'll be actually well on your method to fast-tracking your clinical study profession. Whether you are actually looking for advice [https://www.akonter.com/story/crafting-a-perfect-referral-for-medical-analysts/ Read More From Here] experienced mentors, honing your writing capabilities, or even making use of advanced tools to enhance your research, the key is to maintain factors simple and dependable. Along with the right metho..."
wikitext
text/x-wiki
Through executing these proven strategies, you'll be actually well on your method to fast-tracking your clinical study profession. Whether you are actually looking for advice [https://www.akonter.com/story/crafting-a-perfect-referral-for-medical-analysts/ Read More From Here] experienced mentors, honing your writing capabilities, or even making use of advanced tools to enhance your research, the key is to maintain factors simple and dependable. Along with the right method and a concentrate on building your academic credibility and reputation, you can effectively navigate the complications of clinical analysis and come to be a leading have a place in the industry. And don't forget, tough referrals like a clinical investigation Referral letter design template or Recommendation letter for medical investigation experts will help you along the road, ensuring that your scholarly quest is actually sustained and celebrated.
52212558c116617911c1e07e909be30a26efe363
User:HTBDann37474
2
1841
2696
2025-02-19T10:36:52Z
HTBDann37474
2207
Created page with "With the fouad WhatsApp most current variation apk download, you can accessibility a lot [https://hackmd.io/@ZoieMeza/when-should-you-consider-switching-to-fouad-whatsapp-apk Find Out More] unique sticker labels and emojis to express yourself creatively. These kinds of improvements make messaging practical and delightful, establishing Fouad WhatsApp in addition to conventional choices."
wikitext
text/x-wiki
With the fouad WhatsApp most current variation apk download, you can accessibility a lot [https://hackmd.io/@ZoieMeza/when-should-you-consider-switching-to-fouad-whatsapp-apk Find Out More] unique sticker labels and emojis to express yourself creatively. These kinds of improvements make messaging practical and delightful, establishing Fouad WhatsApp in addition to conventional choices.
f257cc1979c5a5e20800780609eb30a043b5ac0e
User:JoannaFreel69
2
1842
2697
2025-02-19T11:22:38Z
JoannaFreel69
2206
Created page with "Along with the fouad WhatsApp latest version apk download, you can gain access to a lot more unique sticker labels and emojis to share yourself creatively. These kinds of improvements make messaging functional and pleasurable, establishing Fouad WhatsApp aside from conventional options.<br><br>Also visit my web page - [https://www.callupcontact.com/b/businessprofile/Fouad_WhatsApp_APK/9537508 Check Our Top Pick]"
wikitext
text/x-wiki
Along with the fouad WhatsApp latest version apk download, you can gain access to a lot more unique sticker labels and emojis to share yourself creatively. These kinds of improvements make messaging functional and pleasurable, establishing Fouad WhatsApp aside from conventional options.<br><br>Also visit my web page - [https://www.callupcontact.com/b/businessprofile/Fouad_WhatsApp_APK/9537508 Check Our Top Pick]
01a19a76a8eeba29fc9bc0bb2a29aceadd486aba
User:Flora20G52536
2
1843
2698
2025-02-19T11:24:05Z
Flora20G52536
2208
Created page with "Along with the fouad WhatsApp newest version apk download, you can accessibility even more distinct sticker labels and emojis to express yourself artistically. These enhancements make messaging useful and enjoyable, establishing Fouad WhatsApp apart from typical choices.<br><br>Here is my website - [https://penzu.com/p/8d43becff3f8734a View Source]"
wikitext
text/x-wiki
Along with the fouad WhatsApp newest version apk download, you can accessibility even more distinct sticker labels and emojis to express yourself artistically. These enhancements make messaging useful and enjoyable, establishing Fouad WhatsApp apart from typical choices.<br><br>Here is my website - [https://penzu.com/p/8d43becff3f8734a View Source]
f85c06e3ae745b6dbc03e40190a4de26c949511a
User:DelLeverett5
2
1844
2699
2025-02-21T06:05:13Z
DelLeverett5
2221
Created page with "My name is Glen Mrozek. Iowa has been his living place. To read comics 1 of the of factors I love most. Office supervising is a few things i do. Go to my website as part of your out more: https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html<br><br>Also visit my web page: [https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html property mana..."
wikitext
text/x-wiki
My name is Glen Mrozek. Iowa has been his living place. To read comics 1 of the of factors I love most. Office supervising is a few things i do. Go to my website as part of your out more: https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html<br><br>Also visit my web page: [https://Www.Digitaljournal.com/pr/news/press-advantage/professional-assistance-available-tenant-eviction-1773806284.html property management Companies that help With Marketing]
eb8b850f9c467500ba9143414fdcbd4bd3f0ea98
User:MarcelaSimpkinso
2
1845
2700
2025-02-22T01:15:10Z
MarcelaSimpkinso
2227
Created page with "Glen is what's written on his birth certificate and he totally loves this headline. To model railways exactly what I do every helpless. Nevada has been my living place and my family loves that. The job she's been occupying countless soft drinks is an accounting officer. He's not godd at design a person might in order to be check his website: https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w<br><br>Also visit my webpage - [https://www.youtube.com/channel/UCz3i5CwTG..."
wikitext
text/x-wiki
Glen is what's written on his birth certificate and he totally loves this headline. To model railways exactly what I do every helpless. Nevada has been my living place and my family loves that. The job she's been occupying countless soft drinks is an accounting officer. He's not godd at design a person might in order to be check his website: https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w<br><br>Also visit my webpage - [https://www.youtube.com/channel/UCz3i5CwTGQntMgPk9HiN48w Real estate agency]
66a6c7235b7ca8088177b3b6aedcf22b1aa1d865